与一个小组一起开发一个游戏,它有一个小百科全书。我能够从 JS 到 TS 得到一些,我正在慢慢学习。但结构已经改变。假设结构如下所示:
const enycData = [
{
"Items": {
"Apple": {...},
...
},
"Locations": {
"Apple Land": {...},
...
},
...
]
实际上,我们只会根据其他情况在函数中调用“Apple”或“Apple Land”,我希望能够发现拼写错误:
openEncyc("Apple")
。我希望这些属性中的每一个都是独一无二的。
我不需要做任何任意的爬行,它永远都是那么深。代表类别的对象数组,然后是类别中的每个文章标题。
我看过一些指南使用诸如
T extends T ? keyof T: never
之类的东西,但我无法完全点击它。
您可以使用索引访问类型,如下所示:
type T = {[k in keyof typeof enycData[number]] :
keyof typeof enycData[number][k]}[keyof typeof enycData[number]];
// "Apple" | "Apple Land"