我正在研究TypeScript中私有成员的实现,我发现它有点令人困惑.Intellisense不允许访问私有成员,但在纯JavaScript中,这一切都在那里.这让我觉得TS没有正确实现私有成员.

class Test{
  private member: any = "private member";
}
alert(new Test().member);

推荐答案

与类型判断一样,成员的隐私只在编译器中强制执行.

私有属性作为常规属性实现,不允许类外的代码访问它.

要使类内部的某些内容真正私有,它不能是类的成员,而是在创建对象的代码的函数范围内创建的局部变量.这意味着您不能像类成员一样访问它,即使用this关键字.

Typescript相关问答推荐

之间是否有区别:例如useEffect()React.useEffect()

接口DOMRouter选项未输出

即使子网是公共的,AWS CDK EventBridge ECS任务也无法分配公共IP地址

有没有可能使用redux工具包的中间件同时监听状态的变化和操作

使用带有RxJS主题的服务在Angular中的组件之间传递数据

如何用不同的键值初始化角react 形式

Angular中的其他服务仅获取默认值

ANGLE独立组件布线错误:没有ActivatedRouting提供程序

ApexCharts条形图未显示最小值.负值

`fetcher.load`是否等同于Get Submit?

使用TypeScrip5强制使用方法参数类型的实验方法修饰符

如何在typescript中为this关键字设置上下文

有没有办法取消分发元组的联合?

在组件卸载时try 使用useEffect清除状态时发生冲突.react +打字

为什么TypeScrip不能解析对象析构中的赋值?

是否可以在类型脚本中定义条件返回类型,而不在函数体中使用类型转换?

编剧- Select 动态下拉选项

Svelte+EsBuild+Deno-未捕获类型错误:无法读取未定义的属性(读取';$$';)

为什么类方法参数可以比接口参数窄

如何在Vuetify 3中导入TypeScript类型?