TypeScript
TSLint - обеспечение качества и согласованности кода
Поиск…
Вступление
TSLint выполняет статический анализ кода и обнаруживает ошибки и потенциальные проблемы в коде.
Основная настройка tslint.json
Это базовая установка tslint.json
, которая
- предотвращает использование
any
- требует фигурных скобок для
if
/else
/for
/do
/while
- требует двойных кавычек (
"
), которые будут использоваться для строк
{
"rules": {
"no-any": true,
"curly": true,
"quotemark": [true, "double"]
}
}
Конфигурация для меньшего количества ошибок программирования
Этот пример tslint.json содержит набор конфигураций для обеспечения более типизации, улавливания общих ошибок или других запутанных конструкций, которые подвержены возникновению ошибок, и следуя далее Руководствам по кодированию для авторов TypeScript .
Чтобы обеспечить соблюдение этих правил, включите tslint в процесс сборки и проверьте свой код перед его компиляцией с помощью 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).
}
}
Использование предопределенного набора правил по умолчанию
tslint
может расширить существующий набор правил и поставляется с настройками по умолчанию tslint:recommended
и tslint:latest
.
tslint:recommended
стабильный, несколько самоуверенный набор правил, который мы рекомендуем для общего программирования TypeScript. Эта конфигурация следует за semver, поэтому она не будет иметь прерывания изменений в младших или патч-релизах.
tslint:latest
extends tslint: рекомендуется и постоянно обновляется, чтобы включить конфигурацию для последних правил в каждом выпуске TSLint. Использование этой конфигурации может привести к изменениям прерываний в младших версиях, поскольку включены новые правила, которые вызывают сбои в вашем коде. Когда TSLint достигнет основной версии, tslint: рекомендуется обновить, чтобы быть идентичным tslint: последнему.
Документы и исходный код предпределенного набора правил
Поэтому можно просто использовать:
{
"extends": "tslint:recommended"
}
чтобы иметь разумную начальную конфигурацию.
Затем можно перезаписать правила из этой предварительной настройки с помощью rules
, например, для разработчиков узлов было бы целесообразно установить no-console
в false
:
{
"extends": "tslint:recommended",
"rules": {
"no-console": false
}
}
Установка и настройка
Чтобы установить команду tslint run
npm install -g tslint
Tslint настроен через файл tslint.json
. Для инициализации команды запуска конфигурации по умолчанию
tslint --init
Чтобы проверить файл на возможные ошибки в команде запуска файла
tslint filename.ts
Наборы правил TSLint
Yeoman genearator поддерживает все эти пресеты и может также расширяться: