我定义了一个applyDamage
方法来接受number
或string
,但只使用number
参数实现了它.当我使用基类调用这个方法时,我有不正确的行为.为什么TypeScript没有显示错误?
interface Character {
applyDamage(value : number): number;
}
interface Humanoid extends Character {
hp:number;
applyDamage(value: number|string): number
}
class Monster implements Humanoid {
hp:number = 10;
applyDamage(v: number) {
this.hp -= v;
return v;
}
}
const monster:Humanoid = new Monster();
monster.applyDamage("hello");
console.log(monster.hp); // <-- NaN