Ricerca…


introduzione

TSLint esegue analisi statiche del codice e rileva errori e potenziali problemi nel codice.

Configurazione di base di tslint.json

Questa è una configurazione base di tslint.json che

  • impedisce l'uso di any
  • richiede parentesi graffe per le istruzioni if / else / for / do / while
  • richiede virgolette ( " ) da utilizzare per le stringhe
{
    "rules": {
        "no-any": true,
        "curly": true,
        "quotemark": [true, "double"]
    }
}

Configurazione per meno errori di programmazione

Questo esempio di tslint.json contiene un set di configurazione per applicare più tipizzazioni, catturare errori comuni o costrutti altrimenti confusi che sono inclini a produrre bug e che seguono più linee guida per i codificatori per i contributori di TypeScript .

Per applicare queste regole, includere tslint nel processo di compilazione e controllare il codice prima di compilarlo con 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).
  }
}

Utilizzo di un set di regole predefinito come predefinito

tslint può estendere un set di regole esistente e viene fornito con i valori predefiniti tslint:recommended e tslint:latest .

tslint:recommended è un insieme di regole stabili e alquanto motivate che incoraggiamo per la programmazione generale di TypeScript. Questa configurazione segue semere, quindi non avrà cambiamenti irrisolti su versioni minori o patch.

tslint:latest extends tslint: consigliato ed è continuamente aggiornato per includere la configurazione per le ultime regole in ogni rilascio TSLint. L'utilizzo di questa configurazione può introdurre modifiche irrisolte nelle versioni minori in quanto vengono attivate nuove regole che causano errori di sfilacciamento nel codice. Quando TSLint raggiunge un bump di versione principale, tslint: raccomandato verrà aggiornato per essere identico a tslint: latest.

Documenti e codice sorgente del set di regole predeterminato

Quindi si può semplicemente usare:

{
  "extends": "tslint:recommended"
}

avere una configurazione iniziale sensata.

È quindi possibile sovrascrivere le regole da quelle preimpostate tramite rules , ad esempio per gli sviluppatori di nodi aveva senso impostare no-console su false :

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

Installazione e configurazione

Per installare il comando tslint run

npm install -g tslint

Tslint è configurato tramite il file tslint.json . Per inizializzare il comando di esecuzione della configurazione di default

tslint --init

Per controllare il file per possibili errori nel comando di esecuzione del file

tslint filename.ts

Set di regole TSLint

Il genearator Yeoman supporta tutti questi preset e può essere esteso anche:



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow