Szukaj…


Wprowadzenie

TSLint wykonuje statyczną analizę kodu i wykrywa błędy i potencjalne problemy w kodzie.

Podstawowa konfiguracja tslint.json

Jest to podstawowa konfiguracja tslint.json , która

  • uniemożliwia korzystanie z any
  • wymaga nawiasów klamrowych dla instrukcji if / else / for / do / while
  • wymaga użycia podwójnych cudzysłowów ( " ) dla ciągów
{
    "rules": {
        "no-any": true,
        "curly": true,
        "quotemark": [true, "double"]
    }
}

Konfiguracja dla mniejszej liczby błędów programowania

Ten przykład tslint.json zawiera zestaw konfiguracji do wymuszania większej liczby typów, wychwytywania typowych błędów lub w inny sposób mylących konstrukcji, które są podatne na tworzenie błędów i postępują zgodnie ze wskazówkami dotyczącymi kodowania dla autorów TypeScript .

Aby egzekwować te reguły, włącz tslint do procesu kompilacji i sprawdź kod przed kompilacją z 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).
  }
}

Korzystanie ze wstępnie zdefiniowanego zestawu reguł jako domyślnego

tslint może rozszerzyć istniejący zestaw reguł i jest dostarczany z domyślnymi tslint:recommended i tslint:latest .

tslint:recommended jest stabilny, nieco opiniotwórczy zestaw reguł, które zachęcamy do ogólnego programowania TypeScript. Ta konfiguracja następuje po semver, więc nie będzie miała przełamujących zmian w wydaniach mniejszych lub łatkach.

tslint:latest rozszerzenie tslint: zalecane i jest stale aktualizowane w celu uwzględnienia konfiguracji najnowszych reguł w każdej wersji TSLint. Użycie tej konfiguracji może wprowadzić przełomowe zmiany w mniejszych wersjach, ponieważ włączone są nowe reguły, które powodują błędy w kodzie w twoim kodzie. Kiedy TSLint osiągnie poważną awarię wersji, tslint: zalecany zostanie zaktualizowany, aby był identyczny z tslint: najnowszy.

Dokumenty i kod źródłowy predefiniowanego zestawu reguł

Można więc po prostu użyć:

{
  "extends": "tslint:recommended"
}

mieć rozsądną konfigurację początkową.

Następnie można zastąpić reguły z tego ustawienia wstępnego za pomocą rules , np. Dla programistów węzłów sensowne było ustawienie wartości false dla no-console :

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

Instalacja i konfiguracja

Aby zainstalować polecenie uruchomienia tslint

npm install -g tslint

Tslint jest konfigurowany za pomocą pliku tslint.json . Aby zainicjować domyślną konfigurację, uruchom polecenie

tslint --init

Aby sprawdzić plik pod kątem możliwych błędów w poleceniu uruchomienia pliku

tslint filename.ts

Zestawy reguł TSLint

Genomator Yeoman obsługuje wszystkie te ustawienia wstępne i może być rozszerzony również:



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow