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

标签 javascript typescript

类从父类(super class)扩展时可以添加方法,但它们可以做相反的事情并删除方法吗?目标是使这些被删除的类在编译时不可访问。我本质上是想获得(新车())。不要在 IDE 中自动完成 .drive()。

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

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

    }


}

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

最佳答案

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

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

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

关于javascript - TypeScript 类可以删除对继承方法的访问吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39842345/

相关文章:

javascript - 当我想发布 JSON 文件 HTTP REQUEST 时,为什么会收到错误 400

javascript - Jquery 事件不适用于动态追加的元素

Typescript/Vuejs 不为计算属性编译

javascript - 如何在 TypeScript 中表示包含多种类型的二维数组?

javascript - 滚动时菜单事件类 - 部分边距问题

javascript - 如何根据数据属性加载文件?

php - ajax表单提交的编码问题

typescript - 使用类似包的类型定义

Angular:我将如何链接 Mat-paginator 的 pageSize 来呈现该数量的项目?

javascript - "Character"是 Typescript 中的关键字还是保留方法?