一尘不染

继承方法调用触发Typescript编译器错误

node.js

我在使用webstorm打字稿编译器时遇到问题。我有以下课程

export class rootData{
  id:string
  //...

  constructor(){
    //...
  }

  insert = ():Promise<any> =>{
    //...
  }
}

class child extends rootData {
  //...

  constructor(){
     super();
  }

  insert = ():Promise<any> => {
        return super.insert();
    }
}

因此,键入“ super”,我会在智能感知中看到所有rootData公共方法。但是在设置super.insert()之后,出现以下错误:

TS2340:仅可通过’super’关键字访问基类的公共和受保护的方法

在TS游乐场中尝试过,它正在工作(认为是简化版本)。

谢谢你的帮助。

编辑:检查编译的javascript后,超级方法的调用在那里。所以编译器给出了一个错误,但是编译了……


阅读 194

收藏
2020-07-07

共1个答案

一尘不染

由于super调用已重定向到,因此prototype您不能使用,property而需要使用methodie不能使用= ()=>

固定代码:

export class rootData{
  id:string
  //...

  constructor(){
    //...
  }

  insert():Promise<any>{
    //...
  }
}

class child extends rootData {
  //...

  constructor(){
     super();
  }

  insert():Promise<any> {
        return super.insert();
    }
}
2020-07-07