【TypeScript】引数が違うメソッド同士をオーバーロード
TypeScriptで、次のようなオーバーロードをしたかったです。
1 2 3 4 5 6 7 8 9 10
| function test(num: number, x: number, y: number): void; function test(num: number, pos: number[]): void;
function test(num: number, pos?: number[], x?:number, y?: number): void { if (typeof x !== "undefined") { } else if (typeof pos !== "undefined") { } }
|
しかし、エラーが出ました。
次のようにすればできます。
1 2 3 4 5 6 7 8 9 10
| function test(num: number, x: number, y: number): void; function test(num: number, x: number[]): void;
function test(num: number, x: any, y?: number): void { if (typeof x === "number") { } else if (x instanceof Array) { } }
|
引数名を共通にすればできます。ちょっと違和感はありますが・・