Lorsque j'utilise la fonction ngOnInit, tslint m'a averti que je devrais implémenter Oninit.Mais je peux utiliser la fonction ngOnInit normalement sans implémenter Oninit.Qui peut me dire quelle est la différence entre deux méthodes?

7
Eve 27 nov. 2017 à 11:33

3 réponses

Meilleure réponse

Je suppose que vous utilisez Typescript?

Vous n'êtes pas obligé d'implémenter OnInit car il s'agit de Typescript et JavaScript n'a pas de concept d'interfaces. Ainsi, lorsque vous implémentez et interférez, cela n'existe pas réellement au moment de l'exécution.

L'implémentation d'une interface vous donne toute la vérification de type forte, et le TSC rejettera tous les avertissements.

Je vous recommande donc de continuer à utiliser l'interface pour cette raison, en plus c'est une bonne pratique.

6
Jamie Rees 27 nov. 2017 à 08:36

Il n'y a pas de différence. Ce n'est que du bon style d'ajouter implements OnInit.

ngOnInit est la seule méthode requise par cette interface.

https://angular.io/api/core/OnInit

4
Günter Zöchbauer 27 nov. 2017 à 08:36

Il n'y a littéralement aucune différence entre les deux si vous parlez de la version "compilée" (après le traitement de TypeScript en JavaScript exécutable). L'interface sera simplement supprimée (il n'y a pas d'interfaces TypeScript au moment de l'exécution). Sauf , la seule vraie différence est que certains outils angulaires pourraient utiliser ces informations (analyse statique, etc.). Cependant, si vous n'utilisez aucun Outillage, ces informations sont uniquement pour vous, respectivement pour tous les codeurs du projet. Vous pouvez facilement supprimer cette règle de votre configuration tslint et tout continuerait de fonctionner de la même manière .

6
Patrick Kelleter 27 nov. 2017 à 08:37
47506649