我正在尝试输入一个对象数组,其中每个对象都具有一组中的一个键。例如:
const foo = [
{ a: 'foo' },
{ b: 'bar' },
{ c: 'baz' },
]
Run Code Online (Sandbox Code Playgroud)
我的第一次尝试是key in联合:
type Foo = { [key in 'a' | 'b' | 'c']: string }[]
const foo: Foo = [
{ a: 'foo' },
{ b: 'bar' },
{ c: 'baz' },
]
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为 Typescript 希望每个对象都拥有联合中的所有键:
type Foo = { [key in 'a' | 'b' | 'c']: string }[]
const foo: Foo = [
{ …Run Code Online (Sandbox Code Playgroud) 是否可以限制对象属性的数量,例如我想限制对象只有一个字符串属性(具有任何名称),我可以这样做:
{[index: string]: any}
Run Code Online (Sandbox Code Playgroud)
限制属性的类型,但是可以限制属性的数量吗?
typescript ×2