TypeScript:无法对子类调用超级方法
当我尝试重写父方法并在内部使用super时,会出现以下错误: 错误TS2340:仅支持基类的公共和受保护方法 可通过“super”关键字访问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
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
调用它。让它成为一个常规的方法,它应该会起作用。我本来打算把它作为一个答案发布,但你的评论说明了一切,所以如果你想的话,我让你把它作为一个答案发布。可能是重复的