typescript - Kiểu { [key: string]: boolean; } nghĩa là gì?
Gần đây gặp phải một thứ như vậy, một khai báo hàm:
static required(control: AbstractControl): {
[key: string]: boolean;
};
Giá trị trả về này là gì? Một đối tượng với một số lượng thuộc tính tùy ý, trong đó mỗi thuộc tính là một boolean và có tên, mà có vẻ như là một chuỗi? Tôi đoán đây là câu hỏi về TypeScript, nhưng chỉ trong trường hợp ai đó thắc mắc tôi tìm thấy điều đó ở đâu - đó là lớp Validators của Angular.
Câu trả lời #1
Đây là một cấu trúc khóa/giá trị, được gọi là chữ ký chỉ mục (hoặc trước đây được biết đến với tên là các loại có thể lập chỉ mục) trong TypeScript.
Khóa là một string và giá trị là một boolean. Ví dụ:
let map : { [key: string]: boolean} = {};
map["foo"] = true;
map["bar"] = false;
map.foo = true;
map["foobar"] = "foo"; // Throws exception
map[1] = true; // Curiously doesn't throws exception
Hãy kiểm tra ví dụ này trên Typescript Playground.
