带有手稿的Momentjs:"类型字符串不能分配给类型'日期'"

时间:2017-05-17 19:15:47

标签: angularjs angular typescript

直到现在我正在使用像这样的momentjs库:

import * as moment from 'moment'; // import moment.
@Component({..});
export class TestClass {
  lastUpdated = Date
  constructor(private myService: MyService){
    this.lastUpdated = this.getCurrentTime(); **// this shows error.. that type string is not assignable to type 'Date'**
  }
 var getCurrentTime(){
    return moment().format('DD MMM YYYY HH:mm:ss'); 
 }
}

上面的代码显示了这个错误:类型字符串不能分配给'日期' **

但是当我使用这一行来代替导入模块时,同样的代码完全正常工作,甚至其他的resturent os

  

声明var moment:any;

但我可以使用上面的声明,因为它正在使用" var":和'任何' Lint不建议。

为什么getCurrentTime返回String?不应该返回日期

2 个答案:

答案 0 :(得分:2)

可以避免通过以下代码再调用一个函数


import * as moment from 'moment'; // import moment.
@Component({..});
export class TestClass {
  lastUpdated: string;
  constructor(private myService: MyService){
    this.lastUpdated = moment(this.lastUpdated).format('DD MMM YYYY HH:mm:ss');
  }
}

答案 1 :(得分:1)

  

“类型字符串不能分配给'Date'类型”

lastUpdated = Date应为lastUpdated: string

代码

修正了其他一些事情:

import * as moment from 'moment'; // import moment.
@Component({..});
export class TestClass {
  lastUpdated: string;
  constructor(private myService: MyService){
    this.lastUpdated = this.getCurrentTime();
  }
 getCurrentTime(){
    return moment().format('DD MMM YYYY HH:mm:ss'); 
 }
}