Typescript думает, что getYear не существует по типу Date
Я запускаю tsc внутри проекта webpack, "core-js": "registry:dt/core-js#0.0.0+20160725163759"
и "node": "registry:dt/node#6.0.0+20160909174046"
Другие свойства даты работают нормально:
private dateToString (date: Date) {
let month = date.getMonth();
let day = date.getDate();
let year = date.getYear() + 1900;
let dateString = `${month}/${day}/${year}`;
return dateString;
}
Typescript отлично распознает date.getMonth
и date.getDate
, но на date.getYear
он дает
Property 'getYear' does not exist on type 'Date'.
Какое определение мне не хватает?
Ответы
Ответ 1
Этот API устарел. Вместо этого попробуйте getFullYear()
.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getYear
Эта функция удалена из веб-стандартов. Хотя некоторые браузеры все еще могут его поддерживать, он находится в процессе отбрасывания. Не используйте его в старых или новых проектах. Страницы или веб-приложения, использующие его, могут прерываться в любое время.
Метод getYear() возвращает год в указанную дату в соответствии с местным временем. Поскольку getYear() не возвращает полные годы ( "проблема 2000 года" ), он больше не используется и был заменен методом getFullYear().
Ответ 2
Изменить эту строку с
let year = date.getYear() + 1900;
в
let year = date.getFullYear();