具有通用键和常规键的Typescript对象?

时间:2019-03-07 16:21:37

标签: typescript

我有以下类型:

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

我想定义一个类型为MyKeys的键,但是还要用更多键扩展它,例如:

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

如何同时使用通用密钥和显式密钥名称?

1 个答案:

答案 0 :(得分:2)

您可以使用Intersection Type

type FooType = {[key in MyKeys]: boolean} & {
  quux: boolean
}
如@jcalz所述

,您也可以使用Record<>

Record<MyKeys | 'quux', boolean>

相当于:

enter image description here