web-dev-qa-db-fra.com

quel est le sens de tslint: "Avertissement: la règle 'no-use-before-declare' nécessite des informations de type"?

Quelle est la signification de tslint: "Avertissement: la règle" no-use-before-declare "nécessite des informations de type."? J'ai fait quelques recherches de base sur Google, mais je ne sais pas ce que cela signifie ou ses implications.

23
user8570495

Mise à jour! Depuis que cette question a été posée, le --type-check L'indicateur est obsolète, vous devriez donc pouvoir utiliser:

tslint --project tsconfig.json src/**/**.ts

Réponse originale ci-dessous.

Je pense que cela signifie que vous ne pouvez pas activer le no-use-before-declare règle sauf si vous exécutez avec le --type-check et le --project drapeaux. Cela doit dépendre de quelque chose qui se produit lorsque ces drapeaux sont passés afin de déterminer les violations de règles.

tslint --type-check --project tslint.json src/**/**.ts
21
Fenton

Si vous voyez cet avertissement dans VSCode, supprimez simplement cette règle de tslint.json, en tant que fichier README dans vscode-tslint le plugin dit:

Depuis tslint version 5, la règle no-non-variable requiert des informations de type. Les règles avec des informations de type ne sont actuellement pas prises en charge par vscode-tslint, veuillez consulter le problème # 70. Le travail recommandé consiste à activer les options du compilateur TypeScript noUnusedLocals et noUnusedParameters dans votre fichier tsconfig.json.

4
Zhang Buzz

Avec TSLint v5.10.0 et supérieur, vous devez pointer TSLint vers votre fichier configuration TypeScript . Vous pouvez le faire en utilisant le --project drapeau:

tslint --project tsconfig.json --config tslint.json \"src/**/*.ts\"

Soyez prudent, car il est facile de mélanger tsconfig.json et tslint.json comme certains utilisateurs déjà expérimenté .

Toutes les options de TSLint CLI sont documentées ici . L'utilisation de --type-check n'est plus nécessaire car il est devenu obsolète dans TSLint v5.8. .

3
Benny Neugebauer

La règle est déconseillée, car TypeScript moderne ne l'utilise pas et est lent à calculer. Selon cette page :

Cette règle est principalement utile lors de l'utilisation du mot clé var car le compilateur détectera automatiquement si une variable let et const de portée bloc est utilisée avant la déclaration. Étant donné que la plupart des TypeScript modernes n'utilisent pas var, cette règle est généralement déconseillée et conservée à des fins héritées. Il est lent à calculer, n'est pas activé dans les préréglages de configuration intégrés et ne doit pas être utilisé pour informer les décisions de conception de TSLint.

3
Jonathan Ramos