使用 TypeScript 在现有对象上定义 getter/setter
Define getter/setter on existing object w/ TypeScript
如何使用 TypeScript 编写以下代码?
document.__defineGetter__('cookie', function() { ... });
document.__defineSetter__('cookie', function(v) { ... });
提前致谢!
(p.s。这假设 document
存在,但 document.cookie
不存在...)
您可以使用 Object.defineProperty 来做到这一点。
您还必须修改现有的对象接口,以便编译器知道您也添加了它。
interface Document {
cake: string
}
Object.defineProperty(document, 'cake', {
get: function () {
return this.id + 'a';
},
set: function (value) {
this.id = value;
}
});
console.log(document.cake);
document.cake = 'abc';
console.log(document.cake);
你可以看到一个工作示例here。
如何使用 TypeScript 编写以下代码?
document.__defineGetter__('cookie', function() { ... });
document.__defineSetter__('cookie', function(v) { ... });
提前致谢!
(p.s。这假设 document
存在,但 document.cookie
不存在...)
您可以使用 Object.defineProperty 来做到这一点。
您还必须修改现有的对象接口,以便编译器知道您也添加了它。
interface Document {
cake: string
}
Object.defineProperty(document, 'cake', {
get: function () {
return this.id + 'a';
},
set: function (value) {
this.id = value;
}
});
console.log(document.cake);
document.cake = 'abc';
console.log(document.cake);
你可以看到一个工作示例here。