具有不同类型但属性相似的对象的映射列表



我正在尝试用具有相同属性但不同类型的对象映射列表:

doStuff(list: Array<FilterStatus> | Array<CaseDefinition>){
list = list.map(value => ({...value, checked: true}));
}

我遇到了一个打字错误,我理解这个错误,因为列表有不同的类型,但我不确定如何使其工作。有小费吗?

:无法调用类型缺少调用签名的表达式。类型'((callbackfon:(值:FilterStatus,索引:数字,数组:FilterStatus[](=>U、 thisArg?:任意(=>U[](|((callbackfon:(值:CaseDefinition,索引:数字,数组:CaseDefinition[](=>U、 thisArg?:任意(=>U[]('没有兼容的呼叫签名。

可复制示例:

https://www.typescriptlang.org/play?#code/KYDwDg9gTgLgBASwHY2FAZgQwMbDgQTgG8AoOcuJTAW2AC44BnGKZAcwG4yLsALYbAGtgAEwYAjCBAA2wTEi4BfEiVCRYiFGiy44AIWLdyMBDFkNmrJJyNw+A4WLiSZchSWUlsJMziYAGQRmBnwAbQBdOABeODCiKloGAHJE4GSAGjt+IVEGLGGYEUIrm9feHEgkP1ImLiiEzN6OGSm2Uzshzy4AqKSrhV0AFckbBMfOBEAGUYYfR0AAppYJhQqChMAE8AHnwAPjgAHwJNnd29A4BKQwo4Vb9Yx5gAOmpMMCWAN0xpYbw0SOSyICFe4N+-2AWXscLABcEU12uSiA

我想你可能想要

Array<FilterStatus | CaseDefinition>

而不是

Array<FilterStatus> | Array<CaseDefinition>

第一个是CCD_ 3的阵列,第二种是FilterStatus阵列或CaseDefinition阵列

完整示例:

export interface FilterStatus  {
name: string;
checked: boolean;
}
export interface CaseDefinition {
title: string;
checked: boolean;
}
const aList: FilterStatus[] = [{name: 'name', checked: false}];
const bList: CaseDefinition[] = [{title: 'title', checked: false}];

function doStuff(list: Array<FilterStatus | CaseDefinition >) {
list = list.map(value => ({ ...value, checked: true }));
}

最新更新