我正在努力为以下dom功能
写一个d.ts
Storage.prototype.setObject = function(key:string, value:any) {
this.setItem(key, JSON.stringify(value));
}
Storage.prototype.getObject = function(key:string) {
var value = this.getItem(key);
return value && JSON.parse(value);
}
如何扩展以下的默认dom存储定义类型?
答案 0 :(得分:2)
您只需要扩展Storage
界面:
interface Storage {
setObject<T>(key:string, value:T):void;
getObject<T>(key:string):T;
}
要指定函数的this
类型,您可以使用假this
参数(应该是第一个):
Storage.prototype.setObject = function(this:Storage, key:string, value:any) {
this.setItem(key, JSON.stringify(value));
}
Storage.prototype.getObject = function(this:Storage, key:string) {
var value = this.getItem(key);
return value && JSON.parse(value);
}