创建带有日期对象的日期时,为什么会收到“类型为“日期”的参数不能分配给类型为“字符串|数字”的参数”的信息?

时间:2019-02-08 22:12:26

标签: javascript typescript date

我有一个将日期对象作为参数的函数。此函数返回不同的日期。

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字符串),但是通过将另一个日期对象传递给来创建日期对象似乎没有问题Date构造函数。因此,我希望不会收到任何错误。

我已经用Google搜索了此结果,但是我发现的SO和Github问题似乎无法回答或解释问题(或者至少我不理解与示例相关的解释)。

我应该得到这个错误吗?并有解决方法吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

因为构造函数需要一个字符串或数字,所以使用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