Angular TS Lint onInit 与 ngOnInit

Dou*_*eri 3 tslint angular

我收到了来自 TS Lint 的警告,说我需要实现 OnInit 接口,并为我提供了一个指向此页面的链接:https : //angular.io/docs/ts/latest/guide/style-guide.html#!#09- 01

是什么区别onInitngOnInit。两者都为我工作。为什么可以使用,ngOnInit而不是onInit写起来很简单?

chr*_*spy 6

Angular 总是检查生命周期钩子,不管你的类是否实现了接口。

https://angular.io/docs/ts/latest/guide/lifecycle-hooks.html

所以如果你有这个类:

export class MyComponent {
    ngOnInit() { ... }
}
Run Code Online (Sandbox Code Playgroud)

它会正常工作(ngOnInit 将被框架调用)。但是,实现接口以确保方法已正确实现是一个好主意。

export class MyComponent implements OnInit {
    ngOnInit() { ... }
}
Run Code Online (Sandbox Code Playgroud)

请注意,这onInit不是生命周期钩子,也不会被 Angular 调用——它只是接口的名称,表明您implement ngOnInit在类中的某个地方使用了方法。