我使用angular 4指令来定义角度属性指令。 但我想将此指令用作类。我的定义是(它工作正常):
@Directive({
selector: '.input-field'
})
这是根据角度选择器定义( .class 一个)
但是我得到了一个tslint错误如下:
有没有办法在不禁用tslint规则的情况下修复此错误?
答案 0 :(得分:1)
在这种情况下,您的规则会阻止您使用类选择器,因此您必须禁用它。问题是全局禁用它?
您可以在代码块中禁用特定规则:
/* tslint:disable: no-use-before-declare */
some code breaking no-use-before-declare rule
/* tslint:enable: no-use-before-declare */
或者你可以为下一行禁用整个tslint
// tslint:disable-next-line
some code breaking all the rules
normal code
答案 1 :(得分:1)
我遇到了同样的错误,并在GitHub上提出了一个问题。这是我得到的答案:
虽然Angular确实支持指令的类选择器,但是此功能仅应在特殊情况下使用,因为它使您难以理解模板的哪些部分是常规类以及哪些是指令。这就是为什么此语法是tslint警告而不是编译错误的原因。
如果您坚持使用此选择器样式,则可以更改tslint配置,或在代码中使用tslint忽略注释作为呼叫站点的前缀,但是如果坚持使用属性选择器,则可以使您的生活和他人的生活更轻松。
这不是很令人满意,但是似乎没有办法解决。
答案 2 :(得分:1)
就我而言,问题在于以下数组类型:
public dateFormats: Array<{ format: string, eq: string }> = [...];
不使用通用语法修复了错误。
我肯定会考虑从 tslint
迁移到 eslint
,因为对 Angular CLI 的支持已停止。
答案 3 :(得分:0)
要在同一项目中验证多个前缀,只需使用以下内容(在tslint.json
文件中):
...
"component-selector": [true, "element", ["app", "my-awsome-prefix", "another-prefix"], "kebab-case"],
...
与指令相同:
...
"directive-selector": [true, "attribute", ["app", "myDirectivePrefix"], "camelCase"],
...