TypeScript在派生中隐藏受保护的类方法

问题描述

我有一个这样的类层次结构:

abstract class Base {
  private b: string;
  abstract protected x() {}
  abstract pub(): void;
}

class D1 extends Base {
  private d: number;
  protected x() { ... }
  pub() {}
}

我需要向API使用者公开派生类:

class D2 extends D1 {
}

...但是我不希望D2的用户(意外或故意)使用其超类的受保护/私有成员。但是,D2必须有权访问公共超类成员。是否仍可以通过(new D2()) instanceof D1检查的同时隐藏内部(通过符号或其他方式?)?我可以更改任何私有/受保护的内部组件,但公共API需要保持不变。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...