TypeScript类可以删除对继承方法的访问吗?

时间:2016-10-04 00:14:31

标签: javascript typescript

类可以在从超类扩展时添加方法,但它们可以相反并删除方法吗?目标是在编译时无法访问这些已删除的类。我基本上想要(新车())。不在IDE中自动完成.drive()。

class vehicle {
    drive() {
        ...
    }
}

class car extends vehicle {
    //previous attempt
    private drive() { // can't modify public/private

    }


}

在编译时(tsc)是否有办法阻止汽车使用方法驱动器?我们可以删除它还是修改它的可访问性?

1 个答案:

答案 0 :(得分:3)

没有。如评论中所述,这表明您的层次结构不正确。派生类必须始终可替换其基类。

你必须考虑当有人写这样的代码时会发生什么

function doSomething(y: Vehicle) {
  y.drive();
}
let x = new Car();
doSomething(x);