如何扩展Date类

时间:2017-03-31 17:00:45

标签: javascript angular date typescript

我正在制作angular2应用程序,我从控制器返回的所有日期都采用 “2017-02-2700:00:00” 格式。我想扩展js Date对象,以便当我创建一个新对象时它从字符串中删除T并且它仍然充当日期对象。我试图实现这一目前的方式是行不通的。我做的扩展Date对象的IDate对象只是显示为空对象而不是日期对象。任何人都知道发生了什么以及如何解决它。如果不能在打字稿中完成,我愿意使用es6 js代替打字稿。我看到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)

1 个答案:

答案 0 :(得分:1)

如果您定位es6,则只能以这种方式扩展原生(内置)类型 如果您无法定位es6,那么您需要解决它:Extending built-ins like Error, Array, and Map may no longer work

有关此内容的更多信息:

虽然并非所有这些都谈到扩展Date,但问题仍然完全相同。