我已尝试根据此讨论(https://github.com/Microsoft/TypeScript/issues/9)在TypeScript中创建一个扩展方法,但无法创建一个有效的方法。
这是我的代码,
namespace Mynamespace {
interface Date {
ConvertToDateFromTS(msg: string): Date;
}
Date.ConvertToDateFromTS(msg: string): Date {
//conversion code here
}
export class MyClass {}
}
但它不起作用。
最佳答案
您需要更改原型(prototype):
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 - 如何在TypeScript中为 'Date'数据类型创建扩展方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38434337/