【问题标题】:TypeScript infer type from object keys dynamicallyTypeScript 从对象键动态推断类型
【发布时间】:2022-01-08 20:22:27
【问题描述】:

如何创建一个接口来根据在另一个对象中输入的键对对象进行类型检查。

例如:

const myObject = {
  colors: {
    black: '#000',
    white: '#fff'
  },
  palette: {
    primary: 'black',
    secondary: 'orange' // <- should give an error because orange does not exist in colors object
  }
};

【问题讨论】:

  • TypeScript 中没有以这种方式工作的特定接口。您可以使用this approach 并将您的对象类型表示为generic constraint,使用asMyObject() 辅助函数来推断泛型类型。这能满足你的需求吗?如果是这样,我可以写一个答案;如果没有,请告诉我我对您的用例缺少什么。

标签: typescript types typescript-generics type-inference


【解决方案1】:

这是一种方法

const colors = {
  black: '#000',
  white: '#fff'
};

const palette: Record<string, keyof typeof colors> = {
  primary: 'black',
  secondary: 'white'
};

const myObject = {
  colors,
  palette
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-03
    • 2019-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-08
    相关资源
    最近更新 更多