TypeScript
TSLint: garanzia della qualità e coerenza del codice
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: