我有一个这样的对象
interface MY_OBJECT_INTERFACE {
[key: string]: string
}
const MY_OBJECT: MY_OBJECT_INTERFACE = {
'key': 'key val',
'anotherKey': 'anotherKey val',
};
是否有办法从这个对象中提取'key' | 'anotherKey'类型?
keyof typeof MY_OBJECT"没有工作。
相关问题:如何从typescript对象关键字串中提取确切的联合类型?
由于MY_OBJECT_INTERFACE
允许任何字符串作为键,因此无法提取键的类型。如果密钥总是已知的,你可以把MY_OBJECT_INTERFACE
改成@ linhnnguyen建议的那样,然后你就可以处理相关问题了,但我想这不是你想要的。
如果对象是动态的(我假设它是),你唯一能做的就是使用Object.keys
来获得键的数组,然后使用它。这当然不是类型,只是一个字符串数组,但至少据我所知,这是最好的类型脚本可以为您做的。
你试试这个
interface MY_OBJECT_INTERFACE {
key: string,
anotherKey: string
}
const MY_OBJECT<MY_OBJECT_INTERFACE> = {
'key': 'key val',
'anotherKey': 'anotherKey val',
};