【发布时间】:2023-02-09 02:50:43
【问题描述】:
class Character {
public readonly name: string;
public readonly level: number;
constructor(name: string, level: number) {
this.name = name;
this.level = level;
}
walk() {
return `${this.name} walking!`
}
showMyLevel() {
return `${this.name} has the level ${this.level}`
}
}
class Wizzard extends Character {
private readonly cajado: string;
constructor(cajado: string) {
super(name, level);
this.cajado = cajado;
}
fireBall() {
return `${this.name} fire ball!`
}
}
const wizzard1 = new Wizzard('Ray', 8);
console.log(wizzard1.fireBall());
我希望我的 Wizard 类继承我的 Character 类并实现一个包含更多项目的构造函数。但是在 super() 我收到错误
const name: void
@deprecated
'name' is deprecated.ts(6385)
lib.dom.d.ts(17877, 5): The declaration was marked as deprecated here.
Argument of type 'void' is not assignable to parameter of type 'string'.ts(2345)
Cannot find name 'level'. Did you mean the instance member 'this.level'?ts(2663)
我认为这可能会发生,因为变量在只读模式下是私有的,但将其更改为公共变量会返回同样的问题。你能帮我吗?
【问题讨论】:
标签: typescript class inheritance typescript-generics