オーバーロードされた関数を実装するには、最初に表示したいすべてのオーバーロード呼び出しシグネチャと、すべてのオーバーロードシグネチャのスーパーセットである実装シグネチャを書き込みます。例:
class Thing implements IThing {
// Implement the name and age fields
name: string;
age: number;
// Overload signature #1
sayHello(name: string): string;
// Overload signature #2
sayHello(age: number): number;
// Implementation signature, not visible to external callers
sayHello(arg: any): any {
if(typeof arg === 'string') {
return this.name;
} else if(typeof arg === 'number') {
return this.age;
} else {
throw new Error('sayHello can only take string or a number');
}
}
}
var x = new Thing();
var n = x.sayHello('world'); // n: string
var a = x.sayHello(42); // a: number
var e = x.sayHello(false); // error: false is not string or number
有効なTypeScriptのようには見えません。ここでコードサンプルを見たことがありますか? http://www.typescriptlang.org/Tutorial/ –
IntelSenseでエラーが発生していないので、私はこのコードスニペットをtypescriptの紹介ビデオから入手します:http://channel9.msdn.com/posts/Anders-Hejlsberg-Introducing -TypeScript –
これは完全に有効なTypeScriptであり、これは有効で直接的な質問です。再投票するために投票してください。 –