TypeScript:无法对子类调用超级方法

TypeScript:无法对子类调用超级方法,typescript,inheritance,abstract-class,super,Typescript,Inheritance,Abstract Class,Super,当我尝试重写父方法并在内部使用super时,会出现以下错误: 错误TS2340:仅支持基类的公共和受保护方法 可通过“super”关键字访问 return super.toJson(["password", ...blacklist]); 这是一个例子: abstract class BaseUser { name: string; constructor(name: string) { this.name = name; } toJ

当我尝试重写父方法并在内部使用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();
       ... 
   }
}

不知道我做错了什么…

正如@Titian Cernicova Dragomir在评论中所说的那样,你应该使用这个方法。您可以检查以下答案:


MyUser在代码中扩展了BaseUser。即使是这样,
toJson
也不是一个方法,它是一个字段,是一个函数,因此不存在于原型中(它是在构造函数中分配的),您不能通过
super
调用它。让它成为一个常规的方法,它应该会起作用。我本来打算把它作为一个答案发布,但你的评论说明了一切,所以如果你想的话,我让你把它作为一个答案发布。可能是重复的