如何更改函数以接受不同类型的参数

时间:2019-10-11 19:14:51

标签: javascript typescript function prototype

在下面的示例中,myFoo将接受Boolean类型的参数。

function myFoo(value:Boolean) { }

我的问题是,是否可以使用原型将myFoo函数更改为接受多个types

例如function myFoo(value:Boolean | string) { }

注意:myFoo是全局函数,不能直接编辑。

已更新

位于不同文件中的全局函数,

export declare class MyGlobalClass<T> extends Observable<T> implements Observer<any> {
    myFunc(value: Boolean): void;
} 

在我的TS文件中,

this.myGlobalClass.myFunc('string');

但是会引发类型错误。因为myFunc仅接受Boolean。我需要解决这个问题。

2 个答案:

答案 0 :(得分:1)

function myFoo(value: Boolean|string) {
    if (typeof value === 'string') {
        //do string patch
    } else {
        //whatever
    }
}

答案 1 :(得分:0)

将类型更改为“任意”

function myFoo(value:any) { }

请注意,您将失去Typescript为此提供的所有类型检查,因为您基本上是在告诉Typescript您要允许“ value”参数从字面上看是任何类型。