Typescript 类型脚本类型';T';不满足约束';HTMLElement';
我使用Typescript 3.5.1编写了以下代码Typescript 类型脚本类型';T';不满足约束';HTMLElement';,typescript,Typescript,我使用Typescript 3.5.1编写了以下代码 类MyParent{ eFoo:T; } 类MyChild扩展MyParent{ foo(){ this.eFoo.value='bar'; } } 类孙子扩展MyChild{ foo(){ this.eFoo.value='baz'; } } 第二个类MyChild有一个我不太理解的编译错误 “类型'T'不满足约束'HtmleElement'。” “类型'T'上不存在属性'value'。” grant类似乎很好,没有任何错误 class
类MyParent{
eFoo:T;
}
类MyChild扩展MyParent{
foo(){
this.eFoo.value='bar';
}
}
类孙子扩展MyChild{
foo(){
this.eFoo.value='baz';
}
}
第二个类MyChild
有一个我不太理解的编译错误
grant
类似乎很好,没有任何错误
class MyChild<T = HTMLInputElement> extends MyParent<T> {
foo() {
this.eFoo.value = 'bar';
}
}
现在,对于所有的T值,myChild.eFoo
肯定有一个值
作为示例代码的旁注,请注意HTMLTextAreaElement并不扩展HTMLInputElement。如果希望
和
元素应用于MyChild,则可能需要更改类型参数和期望值
现在,对于所有的T值,myChild.eFoo
肯定有一个值
作为示例代码的旁注,请注意HTMLTextAreaElement并不扩展HTMLInputElement。如果您想将
和
元素应用于MyChild,您可能需要更改您的类型参数和期望值。不,HTMLTextAreaElement
是从HTMLElement
扩展而来的,与HTMLInputElement
相同。是的,我完全没有理解=/code>的含义。对不起,没有,htmlextareaelement
是从HTMLElement
扩展而来的,与HTMLInputElement
相同。是的,我完全没有理解=
的意思。抱歉。太好了,我不知道我必须再次指定扩展,因为我的孩子扩展了我的父母。@Guillermelopez:很高兴能帮上忙!请记住,MyChild的T是一个完全独立的类型变量,TypeScript不知道您打算如何使用它:也许T是一个数字是可以的,因为MyChild
只是将该数字显示在eFo的Htmlement中的某个地方。祝你好运太好了,我不知道我必须再次指定扩展,因为我的孩子扩展了我的父母。@Guillermelopez:很高兴能帮上忙!请记住,MyChild的T是一个完全独立的类型变量,TypeScript不知道您打算如何使用它:也许T是一个数字是可以的,因为MyChild
只是将该数字显示在eFo的Htmlement中的某个地方。祝你好运
class MyChild<T extends HTMLInputElement = HTMLInputElement> extends MyParent<T> {
foo() {
this.eFoo.value = 'bar';
}
}