我有这样一个对象:
var obj = { key1: "apple", key2: true, key3: 123, . . . key{n}: ... }
因此obj可以包含任意数量的命名键,但是值必须全部为string、bool或number。如何在TypeScript中将obj类型声明为接口?我可以声明一个联合类型或类似类型的关联数组(或可变元组)吗?
obj
vfh0ocws1#
可以,您可以使用索引签名:
interface MyType { [key: string]: string | boolean | number; } var obj: MyType = { key1: "apple", key2: true, key3: 123 };
dgsult0t2#
在阅读了这个问题和David's answer之后,我更深入地研究了文档,并提出了一个很棒的解决方案!我已经使用Generic Types创建了一个字典界面!
interface Dictionary<Type> { [key: string]: Type; }
您可以**(重复)使用**,如下所示:
const myNumbers:Dictionary<number> = { key1: 1, key2: 2, key3: 3 }; const myStrings: Dictionary<string> = { key1: 'Lorem', key2: 'Ipsum', key3: 'Dolor' }; const myElements:Dictionary<HTMLElement> = { button: document.querySelector('#button'), input: document.querySelector('#input') };
2条答案
按热度按时间vfh0ocws1#
可以,您可以使用索引签名:
dgsult0t2#
在阅读了这个问题和David's answer之后,我更深入地研究了文档,并提出了一个很棒的解决方案!
我已经使用Generic Types创建了一个字典界面!
您可以**(重复)使用**,如下所示: