在TypeScript中将对象属性复制到另一个对象,导致错误TS2339
我使用在TypeScript中将对象属性复制到另一个对象,导致错误TS2339,types,typescript,extend,typescript1.6,Types,Typescript,Extend,Typescript1.6,我使用extend()函数来扩展对象: 还有一个类Observer()有一个方法Update()和一个对象check,它是HTMLInputElement类型。 我使用extend()函数来扩展复选框,因此它将具有方法Update()。 然后导致错误TS2339:类型“HTMLInputElement”上不存在属性“Update” 如何修复此错误?更改extend()函数?以下是您要查找的代码段吗 class Observer extends HTMLInputElement{
extend()
函数来扩展对象:
还有一个类Observer()
有一个方法Update()
和一个对象check
,它是HTMLInputElement
类型。
我使用extend()
函数来扩展复选框
,因此它将具有方法Update()
。
然后导致错误TS2339:类型“HTMLInputElement”上不存在属性“Update”
如何修复此错误?更改
extend()
函数?以下是您要查找的代码段吗
class Observer extends HTMLInputElement{
Update: any;
}
var check:Observer = <Observer>document.createElement("input");
check.Update = function(value) {
this.checked = value;
}
类观察者扩展HTMLInputElement{
更新:有;
}
变量检查:Observer=document.createElement(“输入”);
check.Update=函数(值){
该值为已检查值;
}
对于一个
功能扩展(对象:T,扩展:U){
Object.keys(obj.forEach)((key)=>{
扩展[键]=对象[键];
});
返回扩展名为T&U;
}
var检查:HTMLInputElement;
var extended=extend(新观察者(),检查);
//HTMLInputElement属性使用示例
扩展属性;
//此处也没有编译错误:
extended.Update=函数(值){
该值为已检查值;
};
class Observer {
Update(value) { }
}
var check:HTMLInputElement = document.createElement("input");
extend(new Observer(), check);
check.Update = function(value) {
this.checked = value;
}
class Observer extends HTMLInputElement{
Update: any;
}
var check:Observer = <Observer>document.createElement("input");
check.Update = function(value) {
this.checked = value;
}
function extend<T, U>(obj: T, extension: U) {
Object.keys(obj).forEach((key) => {
extension[key] = obj[key];
});
return extension as T & U;
}
var check: HTMLInputElement;
var extended = extend(new Observer(), check);
// example HTMLInputElement property use
extended.attributes;
// no compile error here either:
extended.Update = function(value) {
this.checked = value;
};