Angular 2 CLI - AoT 编译 - 无法使用 HTML5 表单验证器

Angular 2 CLI - AoT Compilation - Unable to use HTML5 form validators

我正在尝试构建一个 Angular 2 项目,使用带有 --prod 和 --aot 参数的 angular-cli。构建失败并出现以下错误: Property 'required' does not exist on type '{ [key: string]: any; }'. 在我的 HTML 中,我对我的一些输入(必需的,模式)使用了 HTML5 个验证器。 使用 JiT 编译,这些按预期工作。只有在 AoT 编译期间才会出现错误。 谁看过这个吗?我希望不必诉诸于使用 ReactiveForms 方法和使用 Angular 验证器来定义我的所有表单,除非没有办法解决它。

以下是一些会导致AoT编译失败的事情。

  • 不要对模板或样式使用 require 语句,使用 styleUrls 和 templateUrls,angular2-template-loader 插件会在构建时将其更改为 require。
  • 不要使用默认导出。
  • 不使用form.controls.controlName,使用form.get(‘controlName’)
  • 不使用control.errors?.someError,使用control.hasError(‘someError’)
  • 不要在您的提供程序、路由或声明中使用函数,导出函数然后引用该函数名称
  • @Inputs、@Outputs、View 或 Content Child(ren)、Hostbindings,以及您在模板中使用或为 Angular 注释的任何字段应为 public