Я пытаюсь расширить собственные типы JavaScript, используя новую глобальную аугментацию в TypeScript 1.8, как описано здесь. Однако у меня возникают проблемы, когда функции расширения возвращают один и тот же тип.
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();
}
}
Я получаю следующую ошибку TS2322 при попытке использовать определенное расширение в DateHelper.ts:
Type 'Date' is not assignable to type 'Date'.
Property 'toDateString' is missing in type 'Date'.
Кто-нибудь знает, как решить эту проблему?