Wal*_*ite 3 javascript typescript angular
在角度我在第一个文件中有两个文件
private _test: BehaviorSubject<any> = new BehaviorSubject({});
Run Code Online (Sandbox Code Playgroud)
在第二个文件中
test$: Observable<Object> = this.test2;
Run Code Online (Sandbox Code Playgroud)
当我从_test更改第一个文件.ts变量以测试时,我遇到了错误
Property 'test' is private and only accessible within the class
Run Code Online (Sandbox Code Playgroud)
在一些文章中:
关于_的使用,也已经开发了一个约定,该约定经常被用来作为对象的私有属性或方法的名称的开头。
为什么使用下划线符号项目编译时没有错误?
在打字稿/ Javascript ES6中,getter的定义方式如下:
get test() : any {
return this._test;
}
Run Code Online (Sandbox Code Playgroud)
因此,您不能同时拥有相同名称的属性和函数。
这也是为什么在生成getter / setter时,您的IDE通常会使用下划线(_)重命名该属性的原因。
您可以重命名该属性以删除下划线,将其可见性更改为public,然后删除该功能。在这两种情况下,都可以像这样访问您的财产obj.test。
| 归档时间: |
|
| 查看次数: |
48 次 |
| 最近记录: |