TypeScript
TSLint - Sicherstellung der Codequalität und -konsistenz
Suche…
Einführung
TSLint führt eine statische Analyse des Codes durch und erkennt Fehler und mögliche Probleme im Code.
Grundlegendes tslint.json-Setup
Dies ist ein grundlegendes tslint.json
Setup welches
- Verwendung verhindert
any
- erfordert geschweifte Klammern für
if
/else
/for
/do
/while
Anweisungen - erfordert Anführungszeichen (
"
) für Zeichenfolgen
{
"rules": {
"no-any": true,
"curly": true,
"quotemark": [true, "double"]
}
}
Konfiguration für weniger Programmierfehler
Dieses tslint.json-Beispiel enthält eine Reihe von Konfigurationen, um weitere Typisierungen zu erzwingen, häufig auftretende Fehler oder anderweitig verwirrende Konstrukte zu erkennen, die dazu neigen, Fehler zu erzeugen, und folgen den Codierrichtlinien für TypeScript-Mitwirkende .
Um diese Regeln durchzusetzen, schließen Sie tslint in Ihren Buildprozess ein und überprüfen Sie Ihren Code, bevor Sie ihn mit tsc kompilieren.
{
"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).
}
}
Standardmäßig einen vordefinierten Regelsatz verwenden
tslint
kann einen vorhandenen Regelsatz erweitern und wird mit den tslint:recommended
und tslint:latest
.
tslint:recommended
ist ein stabiler, etwas meinungsstarker Satz von Regeln, den wir für die allgemeine TypeScript-Programmierungtslint:recommended
. Diese Konfiguration folgt Semver, so dass keine Änderungen in Nebenversionen oder Patch-Releases vorgenommen werden.
tslint:latest
erweitert tslint: empfohlen und wird fortlaufend aktualisiert, um die Konfiguration für die neuesten Regeln in jeder TSLint-Version zu enthalten. Die Verwendung dieser Konfiguration kann zu grundlegenden Änderungen in kleineren Releases führen, da neue Regeln aktiviert werden, die zu Flusenfehlern in Ihrem Code führen. Wenn TSLint einen Hauptversions-Bump erreicht, wird tslint: Recommended aktualisiert, um identisch mit tslint: latest zu sein.
Text & Tabellen und Quellcode predfined ruleset
So kann man einfach verwenden:
{
"extends": "tslint:recommended"
}
eine sinnvolle Startkonfiguration haben.
Man kann dann Regeln aus dieser Voreinstellung über rules
überschreiben, z. B. war es für Knotenentwickler sinnvoll, no-console
auf false
:
{
"extends": "tslint:recommended",
"rules": {
"no-console": false
}
}
Installation und Einrichtung
Um den Befehl tslint run zu installieren
npm install -g tslint
Tslint wird über die Datei tslint.json
konfiguriert. Um den Standard-Konfigurationsbefehl zu initialisieren
tslint --init
So prüfen Sie die Datei auf mögliche Fehler im Dateibetriebsbefehl
tslint filename.ts
Sätze von TSLint-Regeln
Yeoman Genearator unterstützt alle diese Presets und kann auch erweitert werden