我尝试使用TypeScript 1.8中的新全局扩充来扩展本机JavaScript类型,如here所述。但是,当扩展函数返回相同的类型时,我遇到了问题。
Global.ts
str
DateHelper.ts
export {};
declare global {
interface Date {
Copy(): Date;
}
}
if (!Date.prototype.Copy) {
Date.prototype.Copy = function () {
return new Date(this.valueOf());
};
}
我在尝试使用DateHelper.ts中定义的扩展名时遇到以下错误TS2322:
export class DateHelper {
public static CopyDate(date: Date): Date {
return date.Copy();
}
}
有人知道如何解决这个问题吗?
答案 0 :(得分:3)
你可以这样做:
Global.ts:
interface Date
{
Copy: () => Date;
}
Date.prototype.Copy = function()
{
return new Date(this.valueOf());
};
在你的DateHelper.ts
中import './Global';
export class DateHelper {
public static CopyDate(date: Date): Date {
return date.Copy();
}
}