1

javascriptは関数のオーバーロードをサポートしていないため、typescriptはサポートしていません。ただし、これは有効なインターフェイス宣言です。

// 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){

    }
}

それを試してみてください

4

1 に答える 1

5

Typescript での関数のオーバーロードは次のように行われます。

class foo implements IFoo {
    test(x: string);
    test(x: number);
    test(x: any) {
        if (typeof x === "string") {
            //string code
        } else {
            //number code
        }
    }
}
于 2013-03-13T03:54:34.930 に答える