getFullYear()不是函数

时间:2018-11-01 10:55:08

标签: angular7

我正在使用Angular开发Web应用程序。将我的应用升级到Angular7时,日期功能不起作用。它给了我诸如

的错误
  

DateTime.getFullYear不是函数

在升级到Angular7之前还可以。在package.json中:

"typescript": "^3.1.1", "@angular/cli": "~7.0.2",
"@angular/complier-cli": "~7.0.0".

这是怎么回事?

1 个答案:

答案 0 :(得分:0)

请记住,下次您发布问题以粘贴与您的错误相关的代码时,以便其他人查看,因为相同的错误可能源于不同的代码。

将ng6应用程序升级到ng7之后,我的DateTime.getFullYear可以正常工作,直到我对其进行了更改,并且突然出现了相同的错误。一切似乎都很好。

像下面那样检查我的日期对象,返回了一个应有的对象

dateFunction(longdate) {
    console.log(typeof(longDate))  // This returned 'object' which is correct
    longDate.getFullYear() // Would get the same error here
}

因此,我尝试将一个新的日期对象传递给该函数,而不是像这样通过参数传递:

dateFunction() {
    longDate = new Date();
    console.log(typeof(longDate));  // This returned 'object' which is correct
    longDate.getFullYear(); // This worked fine now
}

这会很好,所以我意识到不是我的getFullYear()函数出错,而是我的参数损坏了。

但是这是一个奇怪的部分,所以我去了父组件,并在那里做了同样的事情-我删除了旧代码,并重新编写了longDate = new Date()并将其发送到我的函数中,突然之间工作。完全相同的代码,但我只是重新编写了它。

尝试在函数之前创建一个新日期,将其传递并查看是否有效。如果有效,则不是您的函数而是损坏的旧date变量。

PS:我只是觉得我不得不说,在创建初始日期变量时必须使用new关键字(请参见上面的示例),否则它还会产生错误...