Dol*_*lan 4 encapsulation tslint angular2-hostbinding angular angular6
在我的 TSLint 文件中,我有:
"no-unused-variable": true
Run Code Online (Sandbox Code Playgroud)
在我的组件中,有时我有:
// tslint:disable-next-line:no-unused-variable
@HostBinding('class') private classes = 'my-theme';
Run Code Online (Sandbox Code Playgroud)
因为classes是私有的,TSLint 抱怨,所以我每次都必须禁用 TSLint。
因为封装我不想公开。@HostBinding
解决这个问题的推荐方法是什么?
据我所知,你有两个选择。
1 - 使用protected. 自我解释:
@HostBinding('class') protected classes = 'my-theme';
Run Code Online (Sandbox Code Playgroud)
2 - 使用ignore-pattern. 根据此处,此规则将忽略与指定模式匹配的变量和导入名称。该模式是一个正则表达式,^_表示任何以_.
tslint.json:
...
"no-unused-variable": [true, {"ignore-pattern": "^_"}]
...
Run Code Online (Sandbox Code Playgroud)
成分:
...
"no-unused-variable": [true, {"ignore-pattern": "^_"}]
...
Run Code Online (Sandbox Code Playgroud)
奖金
如果您的变量是只读的,您也可以执行其中一项操作。它不会防止 tslint 错误,但会防止意外修改变量(如果这是您担心封装的原因)。
@HostBinding('class') private _classes = 'my-theme';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1245 次 |
| 最近记录: |