Typescript 我如何建立一个;“测试端口”;,通过哪些选定的私有功能是公共的?

Typescript 我如何建立一个;“测试端口”;,通过哪些选定的私有功能是公共的?,typescript,Typescript,以下是我想要的: 一种实用程序类型,其测试端口为 class C { public p0() { return pv1() + this.pv2(); } private pv1() { ... } private pv2() { ... } } type CT = TestPorted<CT, 'pv1', 'pv2'>; 我试图建立一种方法,让一个类导出其私有签名的子集,以便以一种与类的公共接口明显不同的方式进行测试 看看任何

以下是我想要的:

一种实用程序类型,其测试端口为

class C {
  public p0() {
     return pv1() + this.pv2();
  }
  private pv1() {
    ...
  }
  private pv2() {
    ...
  }
}

type CT = TestPorted<CT, 'pv1', 'pv2'>;
我试图建立一种方法,让一个类导出其私有签名的子集,以便以一种与类的公共接口明显不同的方式进行测试

看看任何一件常用的复杂设备。对于训练有素的技术人员来说,总有办法比训练有素的操作员获得更多的内部信息。过去25年中的每辆车都有一个OBD-II端口;司机不知道它在那里,但机修工知道


显然,这不能单纯用类型来完成,但我认为类型和类lodash函数的某些组合可以建立并遵守一个只进行并行测试的契约。

我怀疑这需要,例如。-目前您只能用
-readonly
来完成。我想不用说,通常不鼓励通过私有接口进行测试。@jornsharpe-现在方法的类别是“私有”(只对类重要)和“公共”(永久签名的一部分);我想再加上第三个。
class CT {
  public p0() {
     return pv1() + this.pv2();
  }
  public testPort() {
     return {
        pv1: () => this.pv1(),
        pv2: () => this.pv2(),
     }
  }
  private pv1() {
    ...
  }
  private pv2() {
    ...
  }
}