Recherche…


Introduction

TSLint effectue une analyse statique du code et détecte les erreurs et les problèmes potentiels dans le code.

Configuration de base de tslint.json

Ceci est une configuration de base de tslint.json qui

  • empêche l'utilisation de any
  • nécessite des accolades pour les instructions if / else / for / do / while
  • exige que les guillemets ( " ) soient utilisés pour les chaînes
{
    "rules": {
        "no-any": true,
        "curly": true,
        "quotemark": [true, "double"]
    }
}

Configuration pour moins d'erreurs de programmation

Cet exemple tslint.json contient un ensemble de configuration pour appliquer davantage de typages, intercepter des erreurs communes ou des constructions déroutantes susceptibles de générer des bogues et de suivre davantage les directives de codage pour les contributeurs TypeScript .

Pour appliquer ces règles, incluez tslint dans votre processus de génération et vérifiez votre code avant de le compiler avec tsc.

{
  "rules": {
     // TypeScript Specific
     "member-access": true, // Requires explicit visibility declarations for class members.
     "no-any": true, // Diallows usages of any as a type declaration.
     // Functionality
     "label-position": true, // Only allows labels in sensible locations.
     "no-bitwise": true, // Disallows bitwise operators.
     "no-eval": true, // Disallows eval function invocations.
     "no-null-keyword": true, // Disallows use of the null keyword literal.
     "no-unsafe-finally": true, // Disallows control flow statements, such as return, continue, break and throws in finally blocks.
     "no-var-keyword": true, // Disallows usage of the var keyword.
     "radix": true, // Requires the radix parameter to be specified when calling parseInt.
     "triple-equals": true, // Requires === and !== in place of == and !=.
     "use-isnan": true, // Enforces use of the isNaN() function to check for NaN references instead of a comparison to the NaN constant.
     // Style
     "class-name": true, // Enforces PascalCased class and interface names. 
     "interface-name": [ true, "never-prefix" ], // Requires interface names to begin with a capital ‘I’
     "no-angle-bracket-type-assertion": true, // Requires the use of as Type for type assertions instead of <Type>.
     "one-variable-per-declaration": true, // Disallows multiple variable definitions in the same declaration statement.
     "quotemark": [ true, "double", "avoid-escape" ], // Requires double quotes for string literals.
     "semicolon": [ true, "always" ], // Enforces consistent semicolon usage at the end of every statement.
     "variable-name": [true, "ban-keywords", "check-format", "allow-leading-underscore"] // Checks variable names for various errors. Disallows the use of certain TypeScript keywords (any, Number, number, String, string, Boolean, boolean, undefined) as variable or parameter. Allows only camelCased or UPPER_CASED variable names. Allows underscores at the beginning (only has an effect if “check-format” specified).
  }
}

Utiliser un ensemble de règles prédéfini par défaut

tslint peut étendre un ensemble de règles existant et est livré avec les valeurs tslint:recommended défaut tslint:recommended et tslint:latest .

tslint:recommended est un ensemble de règles stable, quelque peu motivé, que nous encourageons pour la programmation TypeScript générale. Cette configuration suit un demi-cycle, de sorte qu’elle n’aura pas de changements de rupture entre les versions mineures ou les correctifs.

tslint:latest extension est tslint: recommandée et est continuellement mise à jour pour inclure la configuration des dernières règles dans chaque version de TSLint. L'utilisation de cette configuration peut entraîner des changements de rupture dans des versions mineures, car de nouvelles règles sont activées, ce qui entraîne des défaillances de peluches dans votre code. Lorsque TSLint atteint un bump de version majeur, tslint: la version recommandée sera mise à jour pour être identique à tslint: latest.

Docs et code source du jeu de règles prédéfini

On peut donc simplement utiliser:

{
  "extends": "tslint:recommended"
}

d'avoir une configuration de départ raisonnable.

On peut alors écraser les règles à partir de ce préréglage via des rules , par exemple pour les développeurs de noeuds, il était logique de définir no-console sur false :

{
  "extends": "tslint:recommended",
  "rules": {
    "no-console": false
  }
}

Installation et configuration

Pour installer la commande tslint run

npm install -g tslint

Tslint est configuré via le fichier tslint.json . Pour initialiser la commande d'exécution de la configuration par défaut

tslint --init

Pour vérifier le fichier pour les erreurs possibles dans la commande d'exécution de fichier

tslint filename.ts

Ensembles de règles TSLint

Yeoman Genearator supporte tous ces presets et peut être étendu aussi:



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow