Mor*_*ani 7 class-extensions defineproperty typescript
有没有无论如何反正一些静态方法添加到类型,如Date,String,Array,等?
例如,我想将方法添加today到Date类中,在JavaScript中我可以简单地向其添加属性,或者我可以使用Object.defineProperty:
Date.today = function(){
let date = new Date;
date.setHours(0,0,0,0);
return date;
}
Run Code Online (Sandbox Code Playgroud)
Object.defineProperty(Date, 'today', { get() { ... }});
Run Code Online (Sandbox Code Playgroud)
但是我没有找到通知TypeScript这个新的静态成员.我错过了什么或者我是否以错误的方式谷歌?
您必须扩充DateConstructor界面以添加静态属性:
declare global {
interface DateConstructor {
today: () => Date
}
}
Date.today = function(){
let date = new Date;
date.setHours(0,0,0,0);
return date;
}
Run Code Online (Sandbox Code Playgroud)
类似地扩展StringConstructor并ArrayConstructor用于字符串和数组.请参阅声明合并.
| 归档时间: |
|
| 查看次数: |
2498 次 |
| 最近记录: |