Ошибка 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'