[英]The conflict between angular directive selector and tslint
在這種情況下,您的規則會阻止您使用類選擇器,因此您必須禁用它。 問題是是否全局禁用它?
您可以在代碼塊中禁用特定規則,如下所示:
/* 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
要在同一個項目中驗證多個前綴,您只需使用以下內容(在tslint.json
文件中):
...
"component-selector": [true, "element", ["app", "my-awsome-prefix", "another-prefix"], "kebab-case"],
...
指令也一樣:
...
"directive-selector": [true, "attribute", ["app", "myDirectivePrefix"], "camelCase"],
...
我遇到了同樣的錯誤並在GitHub 上打開了一個問題。 這是我得到的答案:
雖然 Angular 確實支持指令的類選擇器,但這個特性應該只在特殊情況下使用,因為它很難理解模板的哪些部分是常規類,哪些是指令。 這就是為什么此語法是 tslint 警告而不是編譯錯誤的原因。
如果您堅持使用這種選擇器樣式,您可以更改 tslint 配置,或者在代碼中使用 tslint 忽略注釋作為調用站點的前綴,但是如果您堅持使用屬性選擇器,您將讓您和其他人的生活更輕松。
這不是很令人滿意,但似乎沒有辦法解決。
就我而言,問題在於以下數組類型:
public dateFormats: Array<{ format: string, eq: string }> = [...];
不使用通用語法修復了錯誤。
我肯定會考慮從tslint
遷移到eslint
因為對 Angular CLI 的支持已停止。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.