- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我已经阅读了这个答案https://stackoverflow.com/a/45486495/1108891 ,它演示了元组类型推断。经过一些实验,我遇到了这种情况。
当我们的 bộ ba
函数有 T extends string[]
时,元组有 string literal 类型。
export const tuple_0 = (...args: T): T => args;
const ALL_SUITS_0 = tuple_0('hearts', 'diamonds', 'spades', 'clubs');
type T0 = typeof ALL_SUITS_0; // ["hearts", "diamonds", "spades", "clubs"]
另一方面,对于 T extends any[]
,元组具有 sợi dây 类型(不是文字)。
export const tuple_1 = (...args: T) => args;
const ALL_SUITS_1 = tuple_1('hearts', 'diamonds', 'spades', 'clubs');
type T1 = typeof ALL_SUITS_1; // [string, string, string, string]
为什么在后一种情况下我们会丢失文字类型?
我怀疑这与类型推断允许自己采取多少具体步骤有关。即bất kì
距离sợi dây
一步,sợi dây
距离'some-string-literal'
。类型推断是否只允许自己迈出一步?
câu trả lời hay nhất
这不一定特定于元组。如果类型参数具有可以具有文字类型的约束,则 Typescript 将为泛型参数推断文字类型。此行为是由 PR 引入的
来自公关:
During type argument inference for a call expression the type inferred for a type parameter T is widened to its widened literal type if [...]
T
has no constraint or its constraint does not include primitive or literal types
在你的问题的例子中,因为 sợi dây
是原始的,我们没有扩大,因为 bất kì
不是原始的,我们扩大了。
关于typescript - 为什么元组推理从 any[] 变成 [string, string, ... ] 而从 string[] 变成 ['literal1' , 'literal2' , ... ],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53861768/
Nếu bạn muốn nối 5 chuỗi trở lên bằng String.Concat(), thì nó sẽ sử dụng Concat(String[]). Tại sao không luôn luôn sử dụng Concat(String[]) và không cần Concat(S nữa
Hôm nay, khi làm việc với String, tôi đã gặp phải một hành vi mà trước đây tôi không hề biết. Tôi không thể hiểu được chuyện gì đang xảy ra bên trong. Chuỗi công khai returnVal(){ return "5";
Có vẻ như ở mọi nơi tôi nhìn đều có một số phiên bản lỗi thời không còn hoạt động nữa. Vấn đề của tôi có vẻ đơn giản. Tôi có một lớp Java ánh xạ tới cơ sở dữ liệu derby. Tôi đang sử dụng chú thích và đã tạo thành công tất cả các bảng khác trong cơ sở dữ liệu, nhưng ở đây
1. String::size_type() Trong kiểu chuỗi của thư viện chuẩn C++, khi hàm size được gọi để giải quyết đối tượng chuỗi, giá trị trả về là kiểu size_type, một dữ liệu int tương tự như kiểu không dấu.
Tôi đang cố lưu dữ liệu vào tệp plist chứa định nghĩa của một chuỗi các chuỗi. Plist của tôi - nhập mô tả hình ảnh vào đây Mã của tôi để ghi dữ liệu vào plist là -- hãy
Tôi có một đối tượng JavaScript với các cặp khóa/giá trị, trong đó các giá trị là mảng các chuỗi: var error = { "Message": ["Error #1", "Error #2"], "Em
Ví dụ: để lặp lại Danh sách và Danh sách> bằng cách sử dụng cùng một hàm, tôi có thể viết một cái gì đó như: import java.util.*; public class Test{ public static voi
Từ điển đầu tiên giống như Từ điển ParentDict = new Từ điển ParentDict.Add("A_1", "1")
Đây là tệp jsp của tôi: Tôi gặp lỗi Phương thức thay thế (Chuỗi, Chuỗi, Chuỗi) trong loại Hàm không được áp dụng
Tôi cần giúp đỡ. Tôi có một phương thức xuất ra tệp txt chứa nội dung của danh sách (mỗi mục trong mỗi dòng). Các mục danh sách là mảng các chuỗi. Vấn đề là khi tôi gọi string.Join nó trả về chuỗi ký tự "System.Strin
Một đồng nghiệp bảo tôi sử dụng phương pháp sau: string url = "SomeURL"; string ext = "SomeExt";
Lớp đã cho: lớp công khai CategoryValuePair { Loại chuỗi; Giá trị chuỗi } Ngoài ra còn có một phương thức: công khai;
Tôi đang cố gắng hợp nhất các đối tượng Stream>> với các khóa từ tất cả các Luồng vào một bản đồ duy nhất. Ví dụ: Final Map someObject Final List>> list = someObjec;
Giá trị của việc sử dụng IDictionary ở đây là gì? Câu trả lời hay nhất sử dụng giao diện có giá trị luôn giống nhau: bạn không phải thay đổi mã máy khách khi chuyển sang triển khai chương trình phụ trợ khác. Vui lòng xem xét việc phân tích mã của bạn sau
Tôi có thể biết sự khác biệt giữa hai cách khai báo từ điển này không? var Places = [String: String]() var Places = [Dictionary()] Tại sao khi tôi cố nối thêm phần khai báo theo cách này, chỉ
Khi string.IsNullOrWhiteSpace(string) tồn tại trong .NET 4.0 trở lên, sử dụng string.IsNullOrEmpty(string) khi kiểm tra xem một chuỗi có được xem xét hay không
Lý do đằng sau cái tên là gì? SS64 diễn giải chuỗi ở đây trong PowerShell như sau: Chuỗi ở đây là chuỗi trích dẫn đơn hoặc trích dẫn kép
Tôi định rời khỏi bài viết này và cố gắng viết một hàm chấp nhận một chuỗi và một &str, nhưng tôi gặp phải một vấn đề. Tôi có chức năng sau: pub fn new(t_num: S) -> BigNum trong đó S: Into {
Tôi có một mảng nhiều chiều có cấu trúc [String: [String: String]]. Tôi có thể sử dụng vòng lặp for để truy cập bit [String: String], nhưng tôi không biết cách truy cập khóa chính (bit [String:
Tôi đang cố gắng tạo chủ đề bằng sarama (chế độ quản trị viên). Hoạt động tốt mà không cần ConfigEntries. Nhưng tôi cần xác định một số cấu hình. Tôi đặt cấu hình chủ đề (lỗi xảy ra ở đây): tConfigs := map[s
Tôi là một lập trình viên xuất sắc, rất giỏi!