由于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){
}
}
答案 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
}
}
}