我在Angular 6中有一个返回函数,我想定义返回值类型。但是问题是,我的函数可以在几种情况下使用,并且返回值基于这种情况。 这是我的代码如下:
updateProcess(type, list, event: {}) {
let newList = [];
switch (event["action"]) {
case ListManipulation.Add:
newList = list;
newList.push(event["data"]);
break;
case ListManipulation.Delete:
newList = list.filter(
setting => !event["data"].includes(setting[this.itemProperties[type]["idName"]])
);
break;
default:
newList = list;
break;
}
return [...newList];
}
并假设您有一种返回值类型,您可以这样做:
updateProcess(type, list, event: {}): string {
但是我想做的是:
updateProcess(type, list, event: {}): string | [] | {} {
有人可以帮忙吗?
PS。我还需要 list 类型作为参数
答案 0 :(得分:1)
您可以基于所有其他类型创建类型,并像普通类型一样使用
type specialType = string | {} | any[];
并像这样使用它
updateProcess(type, list : specialType , event: {}) : specialType {
let newList = [];
switch (event["action"]) {
case ListManipulation.Add:
newList = list;
newList.push(event["data"]);
break;
case ListManipulation.Delete:
newList = list.filter(
setting => !event["data"].includes(setting[this.itemProperties[type]["idName"]])
);
break;
default:
newList = list;
break;
}
return [...newList];
}