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();