【问题标题】:Type '() => number' is not assignable to type 'number'类型 '() => number' 不可分配给类型 'number'
【发布时间】:2020-08-07 06:44:27
【问题描述】:

我正在尝试做一些非常简单的事情:

DateToString(date: Date): string {
       let month: number = date.getMonth;
       let day: number = date.getDate;
       let year: number = date.getFullYear;

       return (month + 1) + '/' + day + '/' + year;
   }

但是我从标题中得到了错误 “类型 '() => number' 不可分配给类型 'number'”。 相反,如果我尝试使用类型 '() => number' 而不是 'number',则该错误消失并且我得到错误 “运算符 '+' 不能应用于类型 '() => number' 和 'number'”。

在 Typescript 中使用 Vue 和基于类的装饰器。 有什么想法吗?

【问题讨论】:

  • getMonthgetDategetFullYear 是函数。要调用这些函数,你需要在它们后面加上括号,例如getMonth()。如果您包含括号,您将获得对函数本身的引用。
  • @HunterMcMillen 非常感谢!我不敢相信这会浪费这么多时间。

标签: typescript vue.js typescript-typings


【解决方案1】:

getMonth等,必须作为函数调用。

DateToString(date: Date): string {
       let month: number = date.getMonth();
       let day: number = date.getDate();
       let year: number = date.getFullYear();

       return (month + 1) + '/' + day + '/' + year;
   }

顺便说一句,已经有一个函数toLocaleDateString() 可以执行您在上面想要执行的操作,尽管它会根据客户端系统的区域设置给出不同的结果——这可能是也可能不是您想要的。

【讨论】:

  • 感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2017-01-05
  • 2021-09-18
  • 2022-01-16
  • 2021-12-05
  • 2021-11-28
  • 1970-01-01
  • 2023-01-22
  • 2021-01-20
相关资源
最近更新 更多