【问题标题】:Argument of type 'Date' is not assignable to parameter of type 'string'“日期”类型的参数不可分配给“字符串”类型的参数
【发布时间】:2017-05-12 08:47:05
【问题描述】:

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

“日期”类型的参数不能分配给类型参数 '字符串'。

当我写这个函数来设置日期值时出错。

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

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

【问题讨论】:

  • 请提供更多细节。 startOfDay是什么功能?
  • 我正在使用 RxJs 地图和 javascript 地图在 Angular2 日历中插入数据,因此它还提供了事件,“startOfDay”是日历事件中的字段。所以我的插入函数看起来像这样 `return { start: startOfDay(new Date(attendance.dayAt)), title: admission.status, color: this.getColor(attendance.status) } ` 那么如何定义 Date 的类型在 typescript 的 startOfDay 中?
  • 什么是 Angular2 日历?图书馆?
  • 是的 Angular2-Calendar 是一个模块
  • 顺便说一句,你可以试试start: startOfDay(new Date(attendance.dayAt).toString()) 看看它是否有效?

标签: angular meteor angular2-meteor


【解决方案1】:

我遇到了类似的问题。

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

Date variable works, but functions on it do not

Converting string to date issue

Invalid argument 'date format' for pipe 'DatePipe'?

然后我所做的是在“导出类”组件中将我的变量声明为 Date 类型,如下所示:

start: Date

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

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

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      如果您从 API 检索日期作为字符串,则需要从中转换角度日期字段:

      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;
            })
          );
        }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-07-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-03
        • 2019-09-07
        • 2020-06-02
        • 1970-01-01
        相关资源
        最近更新 更多