Angular 当绑定不存在的属性时,是否可以使角度编译器抛出错误?
考虑以下模板:Angular 当绑定不存在的属性时,是否可以使角度编译器抛出错误?,angular,typescript,angular-compiler,Angular,Typescript,Angular Compiler,考虑以下模板: <p>Hello, {{ name }}</p> <button (click)="doLogin()">Login</button> name和doLogin()都不存在。但它编译和运行时仍然没有错误。只有当我尝试单击按钮时,才会收到错误消息doLogin不是浏览器控制台中的函数 我知道,这种行为(运行时的错误)主要是由Javascript设计的。不过,我希望在编译时显示尽可能多的错误。使用Typescript可以完成大部分工作
<p>Hello, {{ name }}</p>
<button (click)="doLogin()">Login</button>
name
和doLogin()都不存在。但它编译和运行时仍然没有错误。只有当我尝试单击按钮时,才会收到错误消息doLogin不是浏览器控制台中的函数
我知道,这种行为(运行时的错误)主要是由Javascript设计的。不过,我希望在编译时显示尽可能多的错误。使用Typescript可以完成大部分工作
但是,属性绑定似乎不会在编译时进行计算。在我看来,Angular编译器应该能够做到这一点。我试着设置为真,但这似乎不起作用。使用ng serve
、ng build
和ng build--prod
进行了尝试
是否有方法在编译时检测不存在的属性绑定?如果不是,这是有意的行为吗?
我正在使用Angular 5.2.0、Typescript 2.5.3和Angular CLI 1.6.4该功能将在Angular 6上提供。基于
我们有一个名为fullTemplateTypeCheck的新编译器设置(请参阅
)
这将揭示这个错误
此设置将成为Angular 6中的默认设置,并且高度可用
推荐。我们没有在Angular 5中打开以不破坏现有的
用户。也就是说,你在这里看到的行为正是用户看到的
在第四节
角度6以下
您可以使用来实现这一点。
我使用visual studio代码验证不存在的属性绑定和方法
它不会阻止您编译,但仍会显示错误
TS Lint将验证组件中未找到的方法、属性
angular CLI仍能成功编译您的代码。我假设您正在尝试使用ng serve
?以及ng build和--prod。我更新了问题。我忘了在IDE中使用TSLint,但我们可以将其添加到构建过程或git钩子中,以防止代码被破坏……您将其添加到构建过程中了吗?还没有,可以。但我仍然很好奇,这是否也适用于编译时-当它不适用时,如果(以及为什么)这是ng编译器的设计问题。请看一下这个
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {}