我开始使用 Angular 并构建一些练习应用程序。我的背景主要是 knockout.js,到目前为止,我非常喜欢我在 Angular 2/4 中看到的大部分内容。
但是,有一件事让我觉得有些奇怪。在学习过程中,我犯了几个拼写错误或属性错误(例如忘记在 ngFor 中使用循环变量),但 VS 代码、CLI linter 和 angular 本身都没有抛出任何错误。例如,如果我在组件的 .ts 文件中有一个名为 myProperty
的属性,并且我不小心将 {{myProporty}}
键入到我的 html 模板中,我不会收到任何错误.只有一个空格,没有输出,留给我自己去尝试找出我做错了什么。在一个简单的模板中,这很容易,但至少有一次它让我在试图弄清楚我错过了什么时耽搁了好一阵子。
我注意到,如果在 @Component
装饰器标记中内联声明模板,linter 实际上确实 抛出错误。在这种情况下,运行 ng lint 会出现错误,您尝试访问的属性“myProporty”在类声明中不存在。
但是,如果我的模板位于它自己的 html 文件。
我不确定我是否遗漏了“严格”设置,或者这是否只是一个工具问题,但对于没有对此类事情进行任何类型的检查似乎很奇怪。 VS 代码似乎也没有针对这些事情的任何智能感知,尽管我不知道这可能是 VS 代码问题。
只是想知道是否有人知道可以检查这些东西的插件,或者是否有我错过的 CLI 命令或其他东西。
最佳答案
也许其他人知道更好的解决方案,但我四处搜索,似乎这种 html 验证是 Angular 的一个持续开发领域。
与此同时,我确实找到了一个有用的 VS 代码扩展来解决我的智能感知问题:https://github.com/angular/vscode-ng-language-service
最新版本 (0.1.5) 似乎已损坏,但 0.1.4 为我的所有 html 模板提供了智能感知,我认为这将有很大帮助。
关于html - 如何在编译时以 Angular 检查不正确的属性名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45868847/