【发布时间】:2018-02-02 18:18:48
【问题描述】:
我开始使用 Angular 并构建一些练习应用程序。我的背景主要是 knockout.js,到目前为止,我非常喜欢我在 Angular 2/4 中看到的大部分内容。
但是,有一点让我觉得有些奇怪。在学习的过程中,我犯了几个拼写错误或属性错误(例如忘记在 ngFor 中使用循环变量),但是 VS 代码、CLI linter 和 angular 本身都没有抛出任何错误。例如,如果我在组件的 .ts 文件中有一个名为 myProperty 的属性,并且我不小心在我的 html 模板中输入了 {{myProporty}},我不会收到任何错误。只有一个空格,没有输出,留给我去尝试找出我做错了什么。在一个简单的模板中,这很容易,但至少有一次它让我坚持了很长时间,因为我试图弄清楚我错过了什么。
我注意到,如果模板在 @Component 装饰器标记中内联声明,则 linter 实际上确实 会引发错误。在这种情况下,运行 ng lint 会给我错误,The property "myProporty" that you're trying to access does not exist in the class declaration. 但是,如果我的模板在其自己的 html 文件中,则不会引发此类错误。
我不确定我是否遗漏了“严格”设置,或者这可能只是一个工具问题,但没有对这类事情进行任何形式的检查似乎很奇怪。 VS 代码似乎也没有任何类型的智能感知这些东西,虽然这可能是 VS 代码问题,我不知道。
只是想知道是否有人知道可以检查这些东西的插件,或者是否有我错过的 CLI 命令或其他东西。
【问题讨论】:
-
你会做 lint 吗?
-
@Vega 是的,正如我所说,ng lint 不(显然)检查 html 文件。如果内联模板中有错误,则会引发错误,但如果它在单独的文件中,则什么也没有。即使应用程序运行也没有开发工具错误,这看起来很奇怪,因为 Angular 必须评估这些。
-
尝试使用 --prod 选项构建它会给出所有错误
ng build --prod -
@Vega 尝试过,但不幸的是,与 ng lint 相同的问题。它会为内联模板抛出错误,但对于使用
templateUrl包含的模板没有错误。
标签: html angular typescript visual-studio-code