我想为对象数组定义一个接口,其中所有对象都应具有相同的结构,但第一个元素具有可选属性之一。
数组中存储的数据示例如下所示:
const array: Item[] = [{
value: 'Value1'
},
{
label: 'Label2',
value: 'Value2'
},
{
label: 'Label3',
value: 'Value3'
},
{
label: 'Label4',
value: 'Value4'
}];
Run Code Online (Sandbox Code Playgroud)
我当前的界面如下所示:
interface Item {
label?: string;
value: string;
}
Run Code Online (Sandbox Code Playgroud)
这意味着该label属性在数组的所有元素上都是可选的,而我希望它在第一个元素上是可选的,但在其余元素上是强制的。
您可以使用可变元组类型(Typescript 4.0+),如下所示:
interface First {
label?: string;
value: string;
}
interface Item {
label: string;
value: string;
}
type Items = [First, ...Item[]];
const array: Items = [
{
value: 'Value1',
},
{
label: 'Label2',
value: 'Value2',
},
{
label: 'Label3',
value: 'Value3',
},
{
label: 'Label4',
value: 'Value4',
},
];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1435 次 |
| 最近记录: |