arrays - 具有不同类型对象但属性相似的映射列表
问题描述
我正在尝试使用具有相同属性但类型不同的对象映射列表:
doStuff(list: Array<FilterStatus> | Array<CaseDefinition>){
list = list.map(value => ({...value, checked: true}));
}
我收到打字稿错误,我理解这是因为列表有不同的类型,但我不确定如何使它工作。任何提示?
: 无法调用类型缺少调用签名的表达式。类型 '((callbackfn: (value: FilterStatus, index: number, array: FilterStatus[]) => U, thisArg?: any) => U[]) | ((callbackfn: (value: CaseDefinition, index: number, array: CaseDefinition[]) => U, thisArg?: any) => U[])' 没有兼容的调用签名。
可重现的例子:
解决方案
我想你可能想要
Array<FilterStatus | CaseDefinition>
代替
Array<FilterStatus> | Array<CaseDefinition>
第一个是 的数组FilterStatus or CaseDefinition
,第二个是 的数组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 }));
}
推荐阅读
- android - Android studio C++ ndk 摄像头
- python-3.x - Pyomo 不能使用 gurobi 求解器
- node.js - 语义发布无法发布到 npm
- android - Tablayout 旁边的导航抽屉按钮
- javascript - 通过 JSON 数组进行索引
- android - BottomNavigationView 的等间距菜单项
- html - How can I horizontally center an svg grouped circle (two paths)?
- apache-spark - Oozie Spark Action (Containing HiveContext) Giving java.lang.OutOfMemoryError: PermGen space
- c++ - 将文本文件全部设为一行而不返回新行 c++
- angular - Firebase logout generates a login page