键入'数字'不可分配给类型'日期'-Typescript未编译
Type 'number' is not assignable to type 'Date' - Typescript not compiling
我有下面的jquery定时器插件代码。编译器给了我错误:"类型‘number’不能分配给类型‘Date’">
$(function(){
var note = $('#note'),
ts = new Date(2012, 0, 1),
newYear = false;
if((new Date()) > ts){
ts = (new Date()).getTime() + 24*60*60*1000; //counting 24 hours
newYear = false;
}
});
});
};
您需要创建Date
:的新实例
if((new Date()) > ts){
ts = new Date((new Date()).getTime() + 24*60*60*1000);
newYear = false;
}
以这种方式,CCD_ 2被分配有具有给定时间的新的CCD_ 3
此外,现在不需要创建Date
的两个实例,只需将其放在一个变量中即可重用:
$(function(){
var note = $('#note'),
ts = new Date(2012, 0, 1),
newYear = false,
now = new Date();
if(now > ts){
ts = new Date(now.getTime() + 24*60*60*1000);
newYear = false;
}
});
在typescript中分配变量时,显式分配类型可以避免任何混淆。分配时:ts = new Date(2012, 0, 1)
您避免声明ts是什么类型,并将其留给";编译器";。如果您尝试过:var ts : number = new Date(2012, 0, 1);
例如(我知道这会占用更多的空间,对不起(,你会得到类似的错误
要解决此问题,您需要为声明添加一个新变量:ts = new Date(now.getTime() + 24*60*60*1000);
或者更干净地说,您可以避免声明ts并构造:var note = $('#note')
在您决定了所有值的类型之后。类似于:if(new Date() > (new Date(2012, 0, 1))
并从那里决定你的";注释";将形成对象。
let oneweek = new Date((new Date()).setDate(today.getDate() + 7));
let twoweek = new Date((new Date()).setDate(today.getDate() + 14));
let onemonth = new Date((new Date()).setDate(today.getMonth() + 1));
let threemonth = new Date((new Date()).setDate(today.getMonth() + 3));
相关文章:
- 比较从函数和生成的日期对象
- Foreach无法在Typescript中工作
- Json数据包含日期和时间格式
- Javascript日期格式类似于ISO,但本地
- 如何在输入字段中的按钮的帮助下打开日历,该字段的类型为“=”;日期”;
- 扩展SVGTextElement时出现Typescript Uncaught TypeError
- 如何在JavaScript中延长当前日期
- 为什么无法在TypeScript中导出类实例
- 两位数的月份日期验证
- 如何将TypeScript对象转换为普通对象
- 更改angularjs中的日期-时间格式
- Angular 2.0 with JavaScript or TypeScript?
- 将日期时间作为 JSON 发送将无法在我的视图中正确显示
- 将日期时间从json转换为可读格式
- NodeJS日期格式不起作用
- 如何在TypeScript中设置日期/时间的格式?
- Typescript接口中的日期在检查时实际上是字符串
- 键入'数字'不可分配给类型'日期'-Typescript未编译
- 在javascript/typescript中向Date添加天数会给出完全错误的日期
- 为什么javascript/typescript隐式地将日期对象转换为字符串