如何在TypeScript中向Date,String,Array,Number Et添加方法

时间:2015-02-17 01:32:38

标签: typescript

如何告诉TypeScript对Date,Number,String等本机类型的添加?

E.g。我想要编译以下内容(例如来自http://sugarjs.com/dates):

var date: Date = Date.create('tomorrow'); // I get a compile error
date.isAfter('March 1st') // I get a compile error 

1 个答案:

答案 0 :(得分:6)

此处需要两种扩展。

1.。静态成员添加到本机类型

e.g。给定示例中的create

这可以通过添加到<type>Constructor接口来完成。例如

interface DateConstructor {
    create(query: string): Date;
}

2.。实例成员添加到本机类型

e.g。给定示例中的isAfter

这可以通过添加到<type>界面来完成,例如

interface Date {
    isAfter(query: string): boolean;
}

完整示例

interface DateConstructor {
    create(query: string): Date;
}
interface Date {
    isAfter(query: string): boolean;
}

var date: Date = Date.create('tomorrow'); // okay
date.isAfter('March 1st') // okay 

自TypeScript 1.4以来,这已经成为可能。