我正在尝试将一个属性添加到现有类型。以下是我的类型:
const dialogData: DialogData = {
a: string,
b: string,
c: string
}
我这样扩展它:
export type ExtendedDialogData = DialogData & {
d: number
}
但是当我试图创建对象时,它失败了。我的语法一定是完全错误的:
const myData: DialogData[{a:0, b:1, c:2}, {a:3, b:4, c:5}]
const myExtendedData: ExtendedDialogData[] = [...myData, d: 100 ];
错误在 d 上,说 * 找不到名称'd'*。而且,实际上,我只是想让 d 是 c 的副本。有人能帮我理解一下我的语法错误吗?
更新:按照要求,这里是真实的的代码。在一个材料对话框中,我有这两种类型:
export type EditableDataModel = MyDataModel & {
sharesToMove: MyDataModel[];
}
export interface MyOrdersDialogData {
title: string,
orders: EditableDataModel[]
}
在启动模型的组件中,我有以下代码:
public launchModal() {
const orders: EditableDataModel[] = [...this.selectedOrders.map(el => {...el, sharesToMove: el.shares})[;
}
我可以在Map中使用console.log,并查看订单输出,如下所示:
{
title: 'my title',
orders: 1556
}
1条答案
按热度按时间imzjd6km1#
这里,您尝试将
d
直接添加到数组中,而不是添加到数组中的每个对象。这会将d属性添加到数组中的每一项