TypeScript:无法在子类上调用超级方法

时间:2019-03-29 17:00:34

标签: typescript inheritance abstract-class super

当我尝试覆盖父方法并且在内部使用super时,出现此错误:

  

错误TS2340:仅基类的公共方法和受保护方法是   通过“ super”关键字可以访问。

    return super.toJson(["password", ...blacklist]);

这是一个示例:

abstract class BaseUser {
    name: string;

    constructor(name: string) {
        this.name = name;
    }

    toJson = () => {
        return Object.assign({}, this);
    }
}

class MyUser {
   ...
   toJson = (blacklist) => {
       ...
       const obj = super.toJson();
       ... 
   }
}

不知道我在做什么错...

1 个答案:

答案 0 :(得分:0)

正如@Titian Cernicova-Dragomir在评论中所说,您应该改用method。您可以检查以下答案:

Inheritance method call triggers Typescript compiler error

Error when performing Inheritance in TypeScript