tsc · Build et types
Le message
error TS7006: Parameter 'req' implicitly has an 'any' type.
Ce que cela veut dire
Le paramètre n'a pas de type écrit et tsc n'avait rien pour l'inférer : il est donc devenu any implicitement, ce que noImplicitAny traite comme une erreur. Cela apparaît dans les fichiers repris de JavaScript et quand un callback est extrait dans sa propre variable ; à l'inverse, un callback écrit en ligne comme items.map(x => ...) a du contexte, tsc l'infère et cela ne se déclenche jamais. Écrire le type à cet endroit est la correction. Vous pouvez aussi écrire any explicitement, mais c'est décider de couper la vérification pour ce paramètre entièrement — quand on ne sait pas ce que c'est, unknown est plus honnête et force à affiner avant usage.
Le correctif
Pas de commande en une ligne ici. L’explication dit où regarder.
- Émis par
- tsc
- Build et types
- 10
Les erreurs de build sont un outil qui refuse avant toute exécution : elles ne cassent rien à l'instant où elles surgissent, mais elles posent deux questions — corrigerez-vous le type ou le chemin pour coller à la forme réelle, ou ferez-vous passer cette seule ligne avec un as any ou un commentaire de suppression ? Et c'est ici que se révèlent pour la première fois les choses qui ne sont vraies que sur votre machine : la casse, les extensions et les variables d'environnement.
Lire un message d’erreur
- Lisez à partir de la première ligne. Plus on descend, plus il s’agit des entrailles de l’outil ; la cause est généralement en haut.
- S’il y a un fichier et un numéro de ligne, commencez là — pas la première image de la pile, mais la ligne la plus haute qui nomme un fichier de vous.
- Cherchez le message tel quel, mais retirez d’abord vos chemins et vos noms de variables : c’est cela qui empêche la correspondance.
- La même situation se formule autrement selon la version de l’outil. Si les résultats sonnent faux, ajoutez le numéro de version.
- Avant de coller un correctif, vérifiez ce qu’il jette. Certains sont irréversibles.
Questions fréquentes
Q. Que veut dire « error TS7006: Parameter 'req' implicitly has an 'any' type. » ?
Le paramètre n'a pas de type écrit et tsc n'avait rien pour l'inférer : il est donc devenu any implicitement, ce que noImplicitAny traite comme une erreur. Cela apparaît dans les fichiers repris de JavaScript et quand un callback est extrait dans sa propre variable ; à l'inverse, un callback écrit en ligne comme items.map(x => ...) a du contexte, tsc l'infère et cela ne se déclenche jamais. Écrire le type à cet endroit est la correction. Vous pouvez aussi écrire any explicitement, mais c'est décider de couper la vérification pour ce paramètre entièrement — quand on ne sait pas ce que c'est, unknown est plus honnête et force à affiner avant usage.
Q. Comment le corriger ?
Pas de commande en une ligne. L’explication ci-dessus dit où regarder.
Q. Quel outil émet cela ?
tsc. Cela relève de Build et types, et le message compte 9 mots.