Tôi muốn tạo giao diện cho đối tượng có loại nhất định cho thuộc tính được đặt tên cụ thể và loại khác cho tất cả các thuộc tính khác.Giao diện kiểu chữ với thuộc tính được đặt tên và thuộc tính chỉ mục tùy ý có kiểu khác nhau
Tôi làm cách nào để viết định nghĩa cho foo
bên dưới?
let foo = {
size: 3,
a: 'foo',
b: 'bar',
c: 'baz'
}
Đây sẽ là cách tiếp cận trực quan của tôi:
interface Foo {
size: number;
[name: string]: string;
}
Tuy nhiên, nguyên cảo cố gắng áp dụng các định nghĩa chung để định nghĩa cụ thể và gây nên các lỗi sau:
error TS2411: Property 'size' of type 'number' is not assignable to string index type 'string'.
Bạn cũng có thể nội tuyến này nếu bạn muốn (cũng không chắc chắn 100% về ts 1.5). loại Foo = {size: number} & {[name: string]: string}; – bingles