Angular 6-如何定义一种以上类型的返回值类型

时间:2018-07-23 07:26:51

标签: javascript angular typescript

我在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 类型作为参数

1 个答案:

答案 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];
}