#javascript #typescript #interface #prototype #global
#javascript #Дата #интерфейс #typescript
Вопрос:
Я хочу добавить функцию getWeekNumber к прототипу даты в javascript / typescript. Я хочу сделать это с помощью интерфейса, потому что в противном случае я получаю сообщение об ошибке, что он не знает метод getWeekNumber().
Сначала я попробовал использовать стандартный интерфейс даты, подобный этому:
interface Date {
getWeekNumber(): number;
}
Это привело к тому, что все методы даты больше не могут вызываться.
Я хочу знать, есть ли способ продлить дату с помощью интерфейса.
Ответ №1:
Вы можете сделать это таким образом:
в DateExt.ts:
interface Date
{
getWeekNumber: () => number;
}
Date.prototype.getWeekNumber = function()
{
return 123;//your calculations goes here
};
в вашем app.ts:
import './DateExt';
let a = new Date();
console.log(a.getWeekNumber());
Комментарии:
1. Проблема с этим решением заключается в том, что все методы Date больше недоступны, например
getTime()
илиgetDate()
2. Они доступны. Это проблема с вашей IDE. У меня последняя версия VSCode / Typescript, и это работает как шарм.
3. также произошел сбой моего интерфейса ionic CLI и самого приложения
4. Извините, это моя ошибка. Я экспортировал интерфейс и импортировал его с помощью {Date}