打字稿:您可以递归键入对象吗

时间:2020-01-01 01:59:36

标签: typescript types

我想让Typescript递归地推断对象的键的类型及其子键。例如,给出以下声明:

const o:A<X> = {
  a:'1',
  b: {
    c: '2'
  }
}

我想定义A,以使X"a"|"b"|"c"。使用keyof,我可以得到Typescript来推断第一层(即X = "a"|"b"),而不是其后一层。是否可以获取Typescript来推断孙子节点的键类型?

1 个答案:

答案 0 :(得分:0)

尝试一下:

type A<X extends string|number> = {
  [id in X]?: string | A<X>
}