3
hereと記載されているように、TypeScript 1.8の新しいグローバル補強を使用して、ネイティブJavaScriptタイプを拡張しようとしています。私はしかし、拡張機能が同じ型を返すときに問題が発生しています。グローバルな拡張を使用してTypeScript 1.8でネイティブJavaScriptの型を拡張する方法は?
Global.ts
export {};
declare global {
interface Date {
Copy(): Date;
}
}
if (!Date.prototype.Copy) {
Date.prototype.Copy = function() {
return new Date(this.valueOf());
};
}
DateHelper.ts
export class DateHelper {
public static CopyDate(date: Date): Date {
return date.Copy();
}
}
私はDateHelper.tsで定義された拡張機能を使用しようとすると、次のエラーTS2322を経験している:
Type 'Date' is not assignable to type 'Date'.
Property 'toDateString' is missing in type 'Date'.
誰もこの問題を解決する方法を知っていますか?
おかげで、:
Global.ts : 'PrototypeExtensions'から{{述語、セレクタ、アクション、コンプレッサ、ディクショナリ、グループ}}をインポートします。 グローバル{ \tインターフェース日 \t {\t \tコピー宣言する:()=>日付。 \t}} Date.prototype.Copy =関数(){ 戻り新しい日付(this.valueOf())。 }; これを実行すると、宣言グローバル部分を追加する必要があり、これによってTS2322エラーが発生します。 –
グローバルな機能拡張を利用したソリューションを見つけるまで、このアプローチを使用します。 – Michael