如何在TypeScript中为'日期'创建扩展方法?数据类型

时间:2016-07-18 10:25:14

标签: typescript extension-methods

我尝试根据此讨论( https://github.com/Microsoft/TypeScript/issues/9 )在TypeScript中创建扩展方法,但我无法创建可用的扩展方法。

这是我的代码,

systemctl restart redis

但它不起作用。

1 个答案:

答案 0 :(得分:22)

您需要更改原型:

interface Date {
    ConvertToDateFromTS(msg: string): Date;
}

Date.prototype.ConvertToDateFromTS = function(msg: string): Date {
    // implement logic
}

let oldDate = new Date();
let newDate = oldDate.ConvertToDateFromTS(TS_VALUE);

虽然看起来你想在Date对象上使用静态工厂方法,但在这种情况下你最好做类似的事情:

interface DateConstructor {
    ConvertToDateFromTS(msg: string): Date;
}

Date.ConvertToDateFromTS = function(msg: string): Date {
    // implement logic
}

let newDate = Date.ConvertToDateFromTS(TS_VALUE);