'Date' 类型的参数不能分配给 'string' 类型的参数

Argument of type 'Date' is not assignable to parameter of type 'string'

我正在从事 Angular2-Meteor 项目,我得到了这个

Argument of type 'Date' is not assignable to parameter of type 'string'.

我编写此函数以设置日期值时出错。

start: startOfDay(new Date(attendance.dayAt)),

我已尝试将类型设置为 Date 但不起作用 我该如何解决此错误?

我遇到了类似的问题。

经过研究,我发现了三个有用的链接:

然后我所做的是在 "export class" 组件中将我的变量声明为 Date 类型,如下所示:

start: Date

然后在一个函数中我像这样使用它来填充日期变量:

start = new Date(Date.now());

根据您收到的错误判断,我假设您的函数 "startOfDay()" 正在返回一个字符串,因此您必须按如下方式更改代码。

start: new Date(startOfDay(new Date(attendance.dayAt)))

原因是,如果 "start" 是一个日期,那么您必须使用函数 new Date() 为其指定一个日期。 Date 然后将字符串作为输入,returns 一个日期并将其分配给变量 "start"。希望这有帮助:)

我遇到这样一种情况,其中日期值作为 JSON 字符串从 Web 服务返回,并且日期被转换为打字稿中的日期类型 属性。这会导致在编译期间显示“Type 'string' is not assignable to type 'Date'”错误。

我发现的一种解决方法是将客户端 属性 定义为 'any' 类型(而不是 :Date)。这允许 JSON 很好地转换为日期,并且在编译期间不会显示错误。

如果您从 API 中检索字符串形式的日期,您需要从中转换 angular 日期字段:

getUser(id: number): Observable<User> {
    return this.http.get<User>(this.baseUrl + 'users/' + id.toString())
    .pipe(
      map( user => {
        user.lastActive = new Date(user.lastActive);
        return user;
      })
    );
  }