如何在typescript中从类型化对象关键字字符串提取确切的联合类型?



我有一个这样的对象

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',
};

相关内容

  • 没有找到相关文章

最新更新