绑定不存在的属性时,可以使Angular Compiler引发错误吗?

frot.io

考虑以下模板:

<p>Hello, {{ name }}</p>
<button (click)="doLogin()">Login</button>

与此TS级一起:

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {}

既不name也不doLogin()存在。它仍然可以编译并运行而没有错误。仅当我尝试单击按钮时,我才收到错误消息doLogin不是浏览器控制台中的功能

我确实知道,这种行为(运行时错误)主要是Javascript所要实现的。不过,我希望在编译时显示尽可能多的错误。使用Typescript可以完成大部分工作。

但是,似乎在编译时不评估属性绑定。我认为,Angular-Compiler应该能够做到这一点。我尝试将fulltemplatetypecheck设置为true,但这似乎并没有解决问题。与试了一下ng serveng buildng build --prod

有没有一种方法可以在编译时检测不存在的属性绑定?如果不是,这是否是预期的行为?

我正在使用Angular 5.2.0,Typescript 2.5.3和Angular CLI 1.6.4

埃尔多

该功能将在角度6上可用。基于问题

我们有一个名为fullTemplateTypeCheck的新编译器设置(请参阅https://github.com/angular/angular/blob/master/packages/compiler-cli/src/transformers/api.ts#L99),它将显示此错误。

此设置将成为Angular 6中的默认设置,强烈建议使用。我们没有在Angular 5中启用,以不破坏现有用户。也就是说,您在此处看到的行为正是用户在Angular 4中看到的。

角度6以下

您可以使用TS Lint实现此目的。我已经将TS Lint与Visual Studio代码一起使用,以验证不存在的属性绑定和方法。

它不会阻止您进行编译,但仍会显示错误。

TS Lint将验证method,property在组件中找不到

Ts Lint在Visual Studio代码中显示错误

角度CLI仍然可以成功编译您的代码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

访问JavaScript对象的不存在属性时如何引发错误

当图像不存在时,Angular Universal / ng-toolkit / universal引发错误

我可以在异步函数中引发错误吗?

如果我的系统调用引发错误,可以容忍吗?

我可以从rxSwift map函数引发错误吗?

AssemblyName.Version可以引发错误吗?

SQL“不存在”在“ Where”子句中引发错误

如何引发错误以破坏不存在的密钥

来自不存在的代码的MVC视图引发错误

PostgreSQL nextval引发错误关系不存在

如果表不存在,从Sequel :: Model引发错误?

TypeScript引发错误“类型'Data'上不存在属性'breadcrumb'”。

Django 1.11-CreateView-无效的表单针对不存在的对象属性引发错误

查询不存在的属性并不总是会引发错误

为什么打字稿会引发错误消息:类型上不存在属性?

Angular ngAnimate引发错误

当对象不存在时,headObject永远不会引发错误

我可以根据响应状态在axios帖子中引发错误吗

创建函数在mysql中引发错误,有人可以帮我吗?

我可以在计算列选择案例中引发错误吗?

有人可以解释为什么这个导入不会引发错误吗?

fs.statSync包含在函数中时引发错误吗?

在不同的类中尝试时,更改 kivy 窗口转换方向会引发错误吗?

角5:仅在“ ng serve --prod”之后引发错误“类型上不存在属性'id'”

使用AngularJS登录后不存在授权标头时,Spring Security不会引发错误

检查对象是否存在,如果不存在则手动引发错误

属性更改时如何引发错误?

启动时AnyLogic引发错误

编写ConnectionIO时如何引发错误?