この議論に基づいてTypeScriptで拡張メソッドを作成しようとしました(https://github.com/Microsoft/TypeScript/issues/9)、しかし、機能するものを作成できませんでした。
ここに私のコードがあります、
namespace Mynamespace {
interface Date {
ConvertToDateFromTS(msg: string): Date;
}
Date.ConvertToDateFromTS(msg: string): Date {
//conversion code here
}
export class MyClass {}
}
しかし、機能していません。
プロトタイプを変更する必要があります。
interface Date {
ConvertToDateFromTS(msg: string): Date;
}
Date.prototype.ConvertToDateFromTS = function(msg: string): Date {
// implement logic
}
let oldDate = new Date();
let newDate = oldDate.ConvertToDateFromTS(TS_VALUE);
Date
オブジェクトに静的なファクトリメソッドが必要なようですが、その場合は次のようにした方が良いでしょう:
interface DateConstructor {
ConvertToDateFromTS(msg: string): Date;
}
Date.ConvertToDateFromTS = function(msg: string): Date {
// implement logic
}
let newDate = Date.ConvertToDateFromTS(TS_VALUE);