Почему я получаю «Аргумент типа« Дата »не присваивается параметру типа« строка | число »» при создании даты с объектом даты? - PullRequest
0 голосов
/ 09 февраля 2019

У меня есть функция, которая принимает объект даты в качестве аргумента.Эта функция возвращает другую дату.

function makeDate(date:Date) {
  return new Date(date); //<--error here
}
const newDate = new Date(); //
console.log(makeDate(newDate)); // Returns date object just fine

Машинопись в Vscode показывает следующую ошибку:

«Аргумент типа« Дата »не может быть назначен параметру типа« строка | число ».»

В то время как в официальных документах указывается, что конструктор Date может принимать число (миллисекунды), строку (строку даты), похоже, что при создании объекта даты проблем не возникаетпередача другого объекта даты в конструктор Date.Поэтому я ожидаю, что не получу ошибку.

Я гуглил для этого результата, но обнаруженные мной проблемы SO и Github, похоже, не отвечают на это и не объясняют проблему (или, по крайней мере, я непонимание объяснения, как оно относится к моему примеру).

Должен ли я получить эту ошибку?И есть ли способ это исправить?

Спасибо!

1 Ответ

0 голосов
/ 09 февраля 2019

Поскольку конструктор ожидает строку или число, используйте getTime, чтобы исправить это

function makeDate(date:Date) {
  return new Date(date.getTime()); //<--error here
}
const newDate = new Date(); //
console.log(makeDate(newDate)); // Returns date object just fine
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...