如何导出typescript类但保持关联变量私有

如何导出typescript类但保持关联变量私有,typescript,tsc,Typescript,Tsc,想象一下这个例子: const hidden = Symbol() export class Foo { static [hidden] = 'I dont want another touch this' } 编译器报告:错误TS4028:导出类的公共静态属性“[hidden]”具有或正在使用私有名称“hidden” 是的,我知道“隐藏”是私人的。我只是不想出口 有没有办法抑制此错误?只有在使用--声明发出时,这才是问题。如果您不关心发出声明文件,那么禁用该选项,错误就会消失 如果您确

想象一下这个例子:

const hidden = Symbol()

export class Foo {
  static [hidden] = 'I dont want another touch this'
}
编译器报告:错误TS4028:导出类的公共静态属性“[hidden]”具有或正在使用私有名称“hidden”

是的,我知道“隐藏”是私人的。我只是不想出口


有没有办法抑制此错误?

只有在使用
--声明发出时,这才是问题。如果您不关心发出声明文件,那么禁用该选项,错误就会消失

如果您确实希望发出声明文件,那么有一个实验性的编译器选项,
--stripInternal
,它不会为任何带有
/**@internal*/
注释的代码发出声明。例如:

const hidden = Symbol()

export class Foo {
    /** @internal */
    static [hidden] = 'I dont want another touch this'
}

这应该可以消除错误。这对您有效吗?

只有在您使用
--声明发出时,这才是一个问题。如果您不关心发出声明文件,那么禁用该选项,错误就会消失

如果您确实希望发出声明文件,那么有一个实验性的编译器选项,
--stripInternal
,它不会为任何带有
/**@internal*/
注释的代码发出声明。例如:

const hidden = Symbol()

export class Foo {
    /** @internal */
    static [hidden] = 'I dont want another touch this'
}

这应该可以消除错误。这对你有用吗?

很高兴了解
stripInternal
。或者,如果您不想公开它,也许可以将其作为模块局部变量保留?很高兴了解
stripInternal
。或者,如果您不想公开它,也许可以将它作为模块局部变量保留?