我正在尝试用具有相同属性但不同类型的对象映射列表:
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 }));
}