2017-05-17 3 views
1

대 각도 TS 린트의 onInit : https://angular.io/docs/ts/latest/guide/style-guide.html#!#09-01내가하는 OnInit 인터페이스를 구현해야 TS의 린트에서 경고를받은이 페이지에 대한 링크 나에게 제공 ngOnInit

onInitngOnInit 사이의 차이점은 무엇입니까. 둘 다 나를 위해 일했습니다. ngOnInit을 사용하고 쓰기가 훨씬 쉬운 onInit이 아닌 이유는 무엇입니까?

+4

'OnInit'은 인터페이스입니다. 구현하려면'ngOnInit' 메소드를 정의해야합니다. 이는 귀하가 연결 한 문서에서 설명됩니다. – jonrsharpe

답변

2

Angular는 클래스가 인터페이스를 구현하는지 여부와 관계없이 항상 라이프 사이클 후크를 검사합니다.

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

이 클래스가 그래서 경우 :

export class MyComponent { 
    ngOnInit() { ... } 
} 

그것은 잘 작동합니다 (ngOnInit이 프레임 워크에 의해 호출됩니다). 그러나 ngOnInit은 다소 마법적입니다. 따라서 다른 개발자에게 OnInit이라는 인터페이스를 구현하여 라이프 사이클 후크를 사용하고 있음을 알리는 것이 좋습니다.

onInit는 라이프 사이클 후크되어 있지 않으므로 각도에 의해 호출되지 않습니다
export class MyComponent implements OnInit { 
    ngOnInit() { ... } 
} 

주 - 단순히 말 인터페이스의 이름입니다 클래스 어딘가에 당신이 implementngOnInit 방법이.

+0

* "다른 개발자에게 신호를 보내면 좋음"* - 실제로는 그렇지 않습니다. 문서마다 OP가 링크하므로 컴파일러에서 경고 할 수 있습니다. 'ngOnInt'을 쓰고 결코 부르지 않는 이유를 궁금해하는 날. – jonrsharpe

+0

내 말은, 그게 나랑 잘 어울리는구나. 인터페이스 구현의 또 다른 이점. – chrispy