如何在 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);
我曾尝试根据此讨论在 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);