En parcourant les tutoriels d'angular 2, je constate qu'à certains endroits, le type de propriétés de la classe est spécifié, par exemple name: string;
et à certains endroits, elle est omise. Il en va de même pour les types de retour des fonctions. Je ne vois donc pas très bien quelle est la meilleure pratique en la matière. Si vous choisissez d'omettre le type, ne perdez-vous pas l'un des plus grands avantages de l'écriture typographique ?
Réponses
Trop de publicités?TypeScript
peut déduire le type d'un paramètre à partir de l'affectation, mais parfois, s'il ne peut pas déduire le type, il utilise la fonction any
.
Utilisation du drapeau du compilateur TypeScript noImplicitAny
peut modifier ce comportement. Lorsque le noImplicitAny
est vrai et que le compilateur TypeScript ne peut pas déduire le type, il génère quand même les fichiers JavaScript, mais il signale également une erreur.
Mais vous pouvez toujours définir explicitement any
sur un type si nécessaire.
Le contrôle de type a en effet ses avantages et je recommande toujours de l'utiliser. La bonne chose avec TypeScript est que, contrairement à d'autres langages, vous pouvez être très succinct avec les types. Nous pouvons écrire
doWork(work:{details:string})
Ce qui permet une vérification stricte des types sans avoir besoin de créer une nouvelle déclaration de type, bien que celle-ci ne puisse pas être partagée.
Je pense que votre question risque d'être signalée comme étant trop générale ou fondée sur des opinions, mais je vous conseille vivement d'utiliser des types chaque fois que cela est possible. C'est l'un des avantages du script de type. La détection précoce des erreurs, à la compilation des types, plutôt que de passer des heures à déboguer juste pour découvrir quelque chose de stupide comme une faute de frappe.
Une explication possible de l'absence de types dans leur documentation pourrait être de rester plus simple, moins effrayant pour les personnes qui n'ont pas de types et qui viennent d'AngularJs.
Pour plus d'informations sur les avantages de la typographie, veuillez consulter cet article : https://stackoverflow.com/a/12694578/222328
Enfin, je vous suggère de jeter un coup d'œil au guide de style angulaire : https://angular.io/guide/styleguide