实现函数重载

时间:2013-03-13 03:34:47

标签: javascript typescript

由于javascript不支持函数重载,打字稿不支持它。但是这是一个有效的接口声明:

// function overloading only in the interface 
interface IFoo{
    test(x:string);
    test(x:number);
}

var x:IFoo;
x.test(1);
x.test("asdf");

但是我该如何实现这个界面呢。 Typescript不允许使用此代码:

// function overloading only in the interface 
interface IFoo{
    test(x:string);
    test(x:number);
}

class foo implements IFoo{
    test(x:string){

    }
    test(x:number){

    }
}

Try it

1 个答案:

答案 0 :(得分:5)

Typescript中的函数重载如下所示:

class foo implements IFoo {
    test(x: string);
    test(x: number);
    test(x: any) {
        if (typeof x === "string") {
            //string code
        } else {
            //number code
        }
    }
}