3
我試圖擴展本地JavaScript類型使用TypeScript 1.8中新的全局增強,如here所述。但是,當擴展函數返回相同類型時,我遇到了問題。如何使用全局增強來擴展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'.
有誰知道如何解決這個問題?
謝謝,這將實際工作,直到你做這樣的事: 從'PrototypeExtensions'導入{Predicate,Selector,Action,Comparer,Dictionary,Group}; 聲明全局{ \t接口日期 \t { \t \t複製:()=>日期; \t} } Date.prototype.Copy =函數() { 返回新日期(this.valueOf()); }; 當你這樣做時,你需要添加聲明全局部分,這又會給你TS2322錯誤。 –
謝謝,我會用這種方法,直到我們找到一個利用全局增強的解決方案。 – Michael