有没有办法为 Date
、String
、Array
等类型添加一些静态方法?
例如,我想将方法 today
添加到 Date
类,在 JavaScript 中我可以简单地向它添加一个属性,或者我可以使用 Object.defineProperty:
Date.today = function(){
let date = new Date;
date.setHours(0,0,0,0);
return date;
}
Object.defineProperty(Date, 'today', { get() { ... }});
但无论如何我都没有找到通知 TypeScript
这个新静态成员的信息。
我是不是遗漏了什么或者我用谷歌搜索的方式不对?
最佳答案
您必须扩充 DateConstructor
接口(interface)以添加静态属性:
declare global {
interface DateConstructor {
today: () => Date
}
}
Date.today = function(){
let date = new Date;
date.setHours(0,0,0,0);
return date;
}
类似地为字符串和数组扩展 StringConstructor
和 ArrayConstructor
。参见 declaration merging .
关于TypeScript:如何向内置类添加静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46664732/