Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 类型脚本类型';T';不满足约束';HTMLElement';_Typescript - Fatal编程技术网

Typescript 类型脚本类型';T';不满足约束';HTMLElement';

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

我使用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 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';
        }
    }