代码之家  ›  专栏  ›  技术社区  ›  Dolan

没有未使用的变量TSLint规则不适用于private@HostBinding

  •  4
  • Dolan  · 技术社区  · 6 年前

    在我的TSLint文件中,我有:

    "no-unused-variable": true
    

    在我的组件中,我有时有:

    // tslint:disable-next-line:no-unused-variable
    @HostBinding('class') private classes = 'my-theme';
    

    classes 是私有的,TSLint抱怨,所以每次我都要禁用TSLint。

    想做什么 @HostBinding

    解决这个问题的推荐方法是什么?

    2 回复  |  直到 6 年前
        1
  •  2
  •   Gokhan Kurt    6 年前

    据我所知,你有两个选择。

    1-使用 protected . 自我解释:

    @HostBinding('class') protected classes = 'my-theme';
    

    2-使用 ignore-pattern . 此规则将根据忽略与指定模式匹配的变量和导入名称 here . 模式是正则表达式和 ^_ 表示任何以 _ .

    tslint.json文件:

    ...
    "no-unused-variable": [true, {"ignore-pattern": "^_"}]
    ...
    

    组成部分:

    @HostBinding('class') private _classes = 'my-theme';
    

    如果你的变量是只读的,你也可以这样做。它不会阻止tslint错误,但是它会阻止意外修改变量,如果您担心封装的话。

    @HostBinding('class') private readonly classes = 'my-theme';
    @HostBinding('class') private get classes() { return 'my-theme'; }
    
        2
  •  0
  •   Dolan    6 年前

    public

    @HostBinding('class') public classes = 'my-theme';
    

    这是因为从Angular的角度来看,它访问组件,比如 component.classes . 因此,在语义上,它是公共的。原因也是一样 @Input

    资料来源:

    https://stackoverflow.com/a/38469573/3481582