【问题标题】:Typescript object with generic keys and regular keys?带有通用键和常规键的打字稿对象?
【发布时间】:2019-03-08 00:29:50
【问题描述】:

我有以下类型:

type MyKeys = 'foo' | 'bar' | 'baz'

我想定义一个具有MyKeys 类型键的类型,但还使用更多键对其进行扩展,如下所示:

type FooType = {
  [key in MyKeys]: boolean
  quux: boolean   // <--- Error: '}' expected.ts(1005)
}

如何同时使用通用键和显式键名?

【问题讨论】:

  • 我也不确定“通用键”是否是你所说的,也不确定“显式键”是否有意义

标签: typescript


【解决方案1】:

您可以使用Intersection Type

type FooType = {[key in MyKeys]: boolean} & {
  quux: boolean
}

如@jcalz所说,你也可以使用Record&lt;&gt;

Record<MyKeys | 'quux', boolean>

相当于:

【讨论】:

  • 这是interesction,不是union
  • 你也可以Record&lt;MyKeys | 'quux', boolean&gt;
猜你喜欢
  • 2020-04-20
  • 1970-01-01
  • 1970-01-01
  • 2019-08-23
  • 2020-03-27
  • 2022-01-10
  • 1970-01-01
  • 2021-06-28
  • 2021-09-15
相关资源
最近更新 更多