2017-08-24 51 views
2

我開始使用angular並構建一些練習應用程序。我的背景大多是knockout.js,到目前爲止,我非常喜歡Angular 2/4中的大部分內容。如何在角度編譯時檢查不正確的屬性名稱

然而,有一件事讓我覺得有點奇怪。在學習過程中,我犯了幾個拼寫錯誤或屬性錯誤(例如忘記在ngFor中使用循環變量),但VS代碼,CLI linter和角本身都不會引發任何錯誤。例如,如果我的組件的.ts文件中有一個名爲myProperty的屬性,並且我意外地在我的html模板中鍵入{{myProporty}},我不會收到任何錯誤。這裏只有一個空白區域,沒有輸出,我可以試着弄清楚我做錯了什麼。在一個簡單的模板中,這很簡單,但至少有一次讓我想起了一段時間,因爲我試圖弄清楚我錯過了什麼。

我注意到實際上棉短絨不如果模板在@Component裝飾標籤聲明爲inline拋出一個錯誤。在這種情況下,運行ng lint會給我錯誤,The property "myProporty" that you're trying to access does not exist in the class declaration.但是,如果我的模板位於它自己的html文件中,則不會引發此類錯誤。

我不知道是否有一個「嚴」設置我已經錯過了,或者也許這只是一個工具的問題,但它似乎很奇怪的存在並不以任何形式對這樣的事情檢查。 VS代碼似乎也沒有任何形式的intellisense這些東西,雖然這可能是VS代碼問題,我不知道。

只是想知道是否有人知道可以檢查這些東西的插件,或者是否有我錯過的CLI命令或其他東西。

+0

你是否做絨毛? – Vega

+0

@Vega是的,正如我所說的,ng lint不會(顯然)檢查html文件。如果內聯模板中存在錯誤,則會引發錯誤,但如果它位於單獨的文件中,則不會產生任何錯誤。即使應用程序運行,也沒有開發工具錯誤,這似乎很奇怪,因爲Angular必須評估這些錯誤。 – Mike

+0

嘗試使用--prod選項來構建它會給出所有錯誤'ng build --prod' –

回答

0

也許有人知道一個更好的解決方案,但我google了一下,看起來這個html驗證是一個正在進行的Angular開發領域。

在此期間,我發現那VS固定我的智能感知問題的代碼擴展有用:https://github.com/angular/vscode-ng-language-service

最新版本(0.1.5)似乎被打破,但0.1.4給我的智能感知我的所有html模板,我認爲這將有助於很多。

+1

是的,肯定是一個持續不斷的問題w /角....我嘗試過使用該插件,但它爲我經常崩潰,我最終放棄了它。我已經習慣了在我的模板中沒有錯誤檢查:-( – diopside

相關問題