Ошибка TSLint "Превышение максимальной длины строки 120"
В моем приложении Angular2 я импортирую один такой компонент:
import { PersonsSingleAccountComponent} from
'../persons-information/fragments/persons-single-account/persons-single-account-bookings/persons-single-account-bookings.component'
Это дает мне ошибку lint "Превышает максимальный символ строки". Если я пытаюсь дать утверждение в '' (backtick), это выдает ошибку.
Как я могу решить эту ошибку ворса?
Ответы
Ответ 1
Это не то, что вы можете изменить, не связанное с вашим кодом.
Вы должны просто отключить правило для этого импорта, добавив комментарий раньше:
// tslint:disable-next-line:max-line-length
import { PersonsSingleAccountComponent} from '../persons-information/fragments/persons-single-account/persons-single-account-bookings/persons-single-account-bookings.component'
Ответ 2
Есть еще один способ решения этой проблемы.
Начиная с версии 5.9.0 правило максимальной длины строки TSLint обеспечивает поддержку шаблонов игнорирования.
tslint.json:
<!-- language: lang-json -->
{
"rules": {
"max-line-length": [
true,
{
"limit": 120,
"ignore-pattern": "^import [^,]+ from |^export | implements"
}
],
}
}
Это правило будет игнорировать следующие строки:
<!-- language: typescript -->
import { SomeLongInterfaceName } from '../../../nested/directory/structure/target';
class MyClass implements SomeLongInterfaceName, OnInit, OnDestroy, OnViewChange {}
export { MyClass, SomeLongInterfaceName };
Кредиты поступают на DanielKucal.
Для вопроса об OP было бы достаточно использовать ^import [^,]+ from
, чтобы игнорировать длинный импорт.
ИМХО, это лучший подход, так как он менее навязчив, чем изменение правила TSLint для всего проекта, и не имеет запаха кода, как если бы вы отключали правила TSLint в каждом файле с комментарием.
Ответ 3
Есть еще один способ избавиться от этой ошибки - изменить правила tslint для всего проекта.
В моем случае у меня был существующий проект с сотнями строк, превышающих лимит. Фактически, код был более понятным, потому что это был в основном массив объектов. Но VS Code нарисовал красное подчеркивание по всему файлу, затрудняя его чтение.
Я сделал следующее: "max-line-length": [ false ]
.
Вы также можете изменить длину, написав "max-line-length": [ true, 240 ]
, что даст тот же результат.
Вот пример tslint.json, который я имею прямо сейчас:
{
"extends": "../tslint.json",
"rules": {
"directive-selector": [
true,
"attribute",
"app",
"camelCase"
],
"component-selector": [
true,
"element",
"app",
"kebab-case"
],
"max-line-length": [ false ],
}
}
Кроме того, просмотрите эту ссылку для получения дополнительных настроек.
Ответ 4
Я бы переименовал файлы и удалил избыточные имена.
И добавление пути к tsconfig, если люди находятся в глубокой структуре папок и используются в других модулях:
{
"compilerOptions": {
"baseUrl": "./src",
"paths": {
"@persons/*": [
"app/shared/foo/bar/persons/*"
]
}
}
}
Результат:
import { PersonsSingleAccountComponent} from
'@persons/information/fragments/account/bookings/single-account-bookings.component'