类可以在从超类扩展时添加方法,但它们可以相反并删除方法吗?目标是在编译时无法访问这些已删除的类。我基本上想要(新车())。不在IDE中自动完成.drive()。
class vehicle {
drive() {
...
}
}
class car extends vehicle {
//previous attempt
private drive() { // can't modify public/private
}
}
在编译时(tsc)是否有办法阻止汽车使用方法驱动器?我们可以删除它还是修改它的可访问性?
答案 0 :(得分:3)
没有。如评论中所述,这表明您的层次结构不正确。派生类必须始终可替换其基类。
你必须考虑当有人写这样的代码时会发生什么
function doSomething(y: Vehicle) {
y.drive();
}
let x = new Car();
doSomething(x);