javascript - Typescript 实现接口(interface)属性

标签 javascript jquery angularjs angular typescript

我已声明接口(interface)如下

interface Base {
    required: string;
}

我已经在类中实现了接口(interface),例如

class MyClass implements Base{
    method(): void {
        console.log(this.required);
    }
}

但是我收到以下错误

severity: 'Error' message: 'Class 'MyClass' incorrectly implements interface 'Base'. Property 'required' is missing in type 'MyClass'.' at: '5,7' source: 'ts'

severity: 'Error' message: 'Property 'required' does not exist on type 'MyClass'.' at: '7,26' source: 'ts'

如果我在类里面再次声明 required: string; 则不会出现错误

interface Base {
    required: string;
}

class MyClass implements Base{
 required: string;

    method(): void {
      this.required="ddd";
        console.log(this.required);
        // you can access HTMLElement
    }
}

var ss=new MyClass();
ss.method();

最佳答案

如果您不想删除 requried: string 两次,请使用 class instate interface 作为 Base 并扩展状态实现。

class Base {
    required: string;
}

class MyClass extends Base{
    method(): void {
      this.required="ddd";
        console.log(this.required);
        // you can access HTMLElement
    }
}

查看playground .

关于javascript - Typescript 实现接口(interface)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42173134/

相关文章:

javascript - jQuery 验证 - 仅指定 errorPlacement

jquery - 如何使用 CSS 更改图标图像的颜色?

javascript - angularJs:无法查看表单提交的数据

javascript - 通过 Angular 显示json数据

jquery - 单击 Bootstrap 中的单选按钮时如何显示/隐藏文本

javascript - $http.post() angularjs 响应函数未按正确顺序执行

javascript - jQuery 将新创建的字符串添加到 .css 中

javascript - es6 javascript setter 函数在构造之外

javascript - 使用 polyfill 的 Shadow DOM v1 样式

javascript - 根据用户输入声明样式设置