使用keyof为同一级别的嵌套键添加输入

问题描述 投票:0回答:1

与一个小组一起开发一个游戏,它有一个小百科全书。我能够从 JS 到 TS 得到一些,我正在慢慢学习。但结构已经改变。假设结构如下所示:

const enycData = [
  {
  "Items": {
    "Apple": {...},
    ...
  },
  "Locations": {
    "Apple Land": {...},
    ...
  },
  ...
]

实际上,我们只会根据其他情况在函数中调用“Apple”或“Apple Land”,我希望能够发现拼写错误:

openEncyc("Apple")
。我希望这些属性中的每一个都是独一无二的。

我不需要做任何任意的爬行,它永远都是那么深。代表类别的对象数组,然后是类别中的每个文章标题。

我看过一些指南使用诸如

T extends T ? keyof T: never
之类的东西,但我无法完全点击它。

typescript keyof
1个回答
0
投票

您可以使用索引访问类型,如下所示:

type T = {[k in keyof typeof enycData[number]] : 
             keyof typeof enycData[number][k]}[keyof typeof enycData[number]];
// "Apple" | "Apple Land"
© www.soinside.com 2019 - 2024. All rights reserved.