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

How to create an extension method in TypeScript for 'Date' data type

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

这是我的代码,

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

    Date.ConvertToDateFromTS(msg: string): Date {
        //conversion code here
    }

    export class MyClass {}
}

但它不起作用。

您需要更改原型:

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);