2017-10-17 2 views
5

En VSCode le linter, tslint, se plaint quand j'ajouter le code suivant, avec le type:Tslint - type trivial inféré - Pourquoi est-il mauvais d'inclure le type ici?

serverId: number = 10; 

Et donne le message suivant:

[tslint] Numéro de type trivialement inférée d'un certain nombre littéral, supprimer l'annotation de type (non-inferrable-types)

Lorsque je supprime le type 'numéro', le message disparaît.

Pourquoi est-il une mauvaise pratique d'inclure les informations de type ici?

+2

https://palantir.github.io/tslint/rules/no-inferrable-types/ dit "Les types explicites où ils peuvent être facilement déduits par le compilateur rendent le code plus verbeux." – Blorgbeard

Répondre

5

Ce n'est pas une mauvaise pratique, mais serverId: number = 10 est redondant, car le type number est inferred lorsqu'une propriété est affectée. C'est ce que TSLint no-inferrable-types met en garde contre:

types explicites où ils peuvent être facilement inférée par le compilateur de rendre le code plus bavard.

moins qu'il y ait une chance que serverId propriété peut être initialement indéfini mais être défini plus tard (par exemple en fonction constructor), number peut être omise sans inconvénient.

Cette approche fonctionne mieux avec l'option noImplicitAny car il n'y a aucune chance qu'un type soit omis par erreur car il n'a pas été déduit.

1

Cela pourrait être considéré comme du bruit. Il est plus important de taper les parties non triviales

0

Il est inutile, il ne fournit aucune nouvelle information. Il s'agit essentiellement d'un commentaire disant "10 est un nombre".