首页 > 解决方案 > 类型 '() => number' 不可分配给类型 'number'

问题描述

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

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 '”。

将 Vue 和基于类的装饰器与 Typescript 一起使用。有任何想法吗?

标签: typescriptvue.jstypescript-typings

解决方案


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()可以执行您想要执行的操作,尽管它会根据客户端系统的区域设置给出不同的结果——这可能是您想要的,也可能不是。


推荐阅读