TypeScript
TSLint - verzekert codekwaliteit en consistentie
Zoeken…
Invoering
TSLint voert statische analyse van code uit en detecteert fouten en potentiële problemen in code.
Basisinstellingen tslint.json
Dit is een standaard tslint.json
opstelling die
- voorkomt het gebruik van
any
- vereist accolades voor
if
/else
/for
/do
/while
instructies - vereist dat dubbele aanhalingstekens (
"
) worden gebruikt voor tekenreeksen
{
"rules": {
"no-any": true,
"curly": true,
"quotemark": [true, "double"]
}
}
Configuratie voor minder programmeerfouten
Dit tslint.json-voorbeeld bevat een set van configuratie om meer typen af te dwingen, veelvoorkomende fouten op te vangen of anderszins verwarrende constructen die gevoelig zijn voor het produceren van fouten en het volgen van meer de coderingsrichtlijnen voor TypeScript-bijdragers .
Om deze regels af te dwingen, neemt u tslint op in uw bouwproces en controleert u uw code voordat u deze compileert met 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).
}
}
Standaard een vooraf gedefinieerde regelset gebruiken
tslint
kan een bestaande regelset uitbreiden en wordt geleverd met de standaardwaarden tslint:recommended
en tslint:latest
.
tslint:recommended
is een stabiele, ietwat eigenzinnige set regels die we aanmoedigen voor algemene TypeScript-programmering. Deze configuratie volgt op semver, dus er zijn geen onderbrekende wijzigingen in kleinere of patch-releases.
tslint:latest
uitbreiding tslint: aanbevolen en wordt continu bijgewerkt om configuratie voor de nieuwste regels in elke TSLint-release op te nemen. Als u deze configuratie gebruikt, kan dit leiden tot het doorbreken van wijzigingen in kleinere releases wanneer nieuwe regels worden ingeschakeld die pluisfouten in uw code veroorzaken. Wanneer TSLint een grote versie tegenkomt, wordt tslint: aanbevolen bijgewerkt om identiek te zijn aan tslint: laatste.
Documenten en broncode van vooraf gedefinieerde regelset
Men kan dus eenvoudig gebruiken:
{
"extends": "tslint:recommended"
}
om een verstandige startconfiguratie te hebben.
Je kunt dan regels van die preset overschrijven via rules
, bijvoorbeeld voor knooppuntontwikkelaars was het logisch om no-console
op false
:
{
"extends": "tslint:recommended",
"rules": {
"no-console": false
}
}
Installatie en configuratie
Om de opdracht tslint te installeren
npm install -g tslint
Tslint wordt geconfigureerd via het bestand tslint.json
. Om de standaardconfiguratie uit te voeren, voert u de opdracht uit
tslint --init
Bestand controleren op mogelijke fouten in opdracht voor uitvoeren van bestand
tslint filename.ts
Sets van TSLint-regels
Yeoman genearator ondersteunt al deze presets en kan ook worden uitgebreid: