我正在制作一个 angular2 应用程序,我从我的 Controller 返回的所有日期都采用这种格式 "2017-02-2700:00:00"。我想扩展 js Date 对象,以便在创建新对象时从字符串中删除 T,它仍然充当日期对象。我目前尝试实现这一目标的方式行不通。我创建的扩展日期对象的 IDate 对象只是显示为空对象而不是日期对象。任何人都知道发生了什么以及如何解决它。如果不能用 typescript 完成,我愿意使用 es6 js 而不是 typescript。我看到了 post关于扩展 Date 对象,但修改了日期对象,我希望拥有自己的名为 IDate 的对象,它与 Date 相同,但有更多的方法。如果这是唯一可以做到的方法,我会标记答案。
export class IDate extends Date {
constructor() {
super();
}
value;
toDate(value: string): Date {
value.replace("T", " ");
return new Date(value);
}
getvalue() {
return this.value;
}
}
let t = new IDate();
let d = new Date();
console.log(t);
console.log(d);
控制台
IDate {}
Fri Mar 31 2017 11:53:59 GMT-0500 (Central Daylight Time)
最佳答案
如果您以 es6
为目标,您只能以这种方式扩展 native (内置)类型。
如果你不能以 es6
为目标,那么你需要解决它:Extending built-ins like Error, Array, and Map may no longer work .
更多信息:
- How do I extend a host object (e.g. Error) in TypeScript
- Can not extend built in types
- Custom error class in TypeScript
虽然并非所有这些都在谈论扩展 Date
,但问题仍然完全相同。
关于javascript - 如何扩展 Date 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43146068/