Ошибка TSLint Превышает максимальную длину строки 120

В моем приложении Angular2 я импортирую один компонент следующим образом:

import { PersonsSingleAccountComponent} from 
   '../persons-information/fragments/persons-single-account/persons-single-account-bookings/persons-single-account-bookings.component'

Это дает мне ошибку ворса «Превышает максимальный символ строки». Если я попытаюсь указать оператор в ``(обратная галочка), он выдаст ошибку.

Как я могу решить эту ошибку lint?


person Priya    schedule 09.03.2017    source источник
comment
Помимо ошибки, возможно, вам также потребуется небольшой рефакторинг. В папке persons-information обязательно ли добавлять префикс persons ко всем отдельным папкам? подсказка относительно вашей проблемы: github.com/madskristensen/WebEssentials2013/issues/667 или stackoverflow.com/questions/21868675/   -  person mickdev    schedule 09.03.2017
comment
вы можете преобразовать его во что-то вроде этого «../persons-information/fragments/persons/single-account/bookings/index.component»   -  person Rohit Krishnan    schedule 16.04.2020


Ответы (6)


Это не то, что вы можете изменить, это не связано с вашим кодом.

Вы должны просто отключить правило для этого импорта, добавив комментарий перед:

// 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'
person maxime1992    schedule 09.03.2017
comment
я согласен с уровнем, но отключение проверки линтинга - это запах кода. Я бы сказал, что система упаковки довольно избыточна и ее можно было бы упростить. - person alebianco; 09.03.2017
comment
Я так безумно запутался! Я не получил эту ошибку вчера, и теперь я копирую точную строку в новый проект, и я ДЕЙСТВИТЕЛЬНО получаю эту ошибку. :-/ - может быть, это новое для машинописного текста 2.5? - person Simon_Weaver; 01.01.2018
comment
хм, или, может быть, вчера у меня не был правильно установлен плагин языка машинописи в VSCode? - person Simon_Weaver; 01.01.2018
comment
@Maxime Есть ли постоянное решение для этого предупреждения? например, изменить что-то в конфигурации VSCode или конфигурации любого плагина? - person Jitendra Solanki; 03.04.2018
comment
@ Джитендра конечно. Если вам не нравится правило, просто удалите его (но это будет не только для импорта). Перейдите к своему tslint.json и удалите строку с line:max-line-length. Например, если вы используете красивее, это совершенно нормально, потому что вы больше не отвечаете за длину строки :) - person maxime1992; 03.04.2018
comment
Вы можете добавить патерн, чтобы исключить импорт и реализацию на самом деле.. "max-line-length": [true, {"limit": 100, "ignore-pattern": "^import [^,]+ from |^export | implements"}], - person Yohan Dahmani; 06.05.2019

Есть еще один способ решения этой проблемы.

Начиная с версии 5.9.0 поддерживается правило TSLint max-line-length для шаблонов игнорирования.

tslint.json:

{
  "rules": {
    "max-line-length": [
      true, 
      {
        "limit": 120, 
        "ignore-pattern": "^import [^,]+ from |^export | implements"
      }
    ],
  } 
}

Это правило будет игнорировать следующие строки:

import { SomeLongInterfaceName } from '../../../nested/directory/structure/target';
class MyClass implements SomeLongInterfaceName, OnInit, OnDestroy, OnViewChange {}
export { MyClass, SomeLongInterfaceName };

Авторы принадлежат Дэниелу Кукалу.

Что касается вопроса об ОП, использования ^import [^,]+ from было бы достаточно, чтобы игнорировать длинный импорт.

ИМХО, это лучший подход, поскольку он менее навязчив, чем изменение правила TSLint для всего проекта, и не имеет запаха кода, как если бы вы отключали правила TSLint в каждом файле с комментарием.

person jowey    schedule 15.02.2019
comment
Это лучшее решение. Я не хотел отключать все проверки lint для длины строки, а также не хотел раздувать свой фактический код исключениями lint. - person Koja; 16.04.2019
comment
Спасибо, это решило тревожное предупреждение: P Я установил предел на 0, чтобы избежать любого предупреждения о превышении минимума. - person Carlos Galeano; 13.06.2019
comment
у меня не сработал шаблон игнорирования. Я пробовал следующее, чтобы игнорировать JSX, но безрезультатно: ^<.*\/.>$ - person Liran H; 05.04.2020
comment
Для тех, кому не сразу ясно (например, мне 10 минут назад), что регулярное выражение явно предназначено для операторов одиночного импорта (поскольку оно исключает запятые). не переключаться на один на строку, когда вы проходите порог, и это просто утомительно исправлять все время. - person John Neuhaus; 18.03.2021

Есть еще один способ избавиться от этой ошибки - изменить правила 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 ],
    }
}

Кроме того, пожалуйста, перейдите по этой ссылке для получения дополнительных настроек.

person sr9yar    schedule 31.10.2018

Есть несколько способов справиться с предупреждениями tslintmax-line-length. 3 способа упомянуты ниже.

  1. Предоставьте правило в файле tslint.json, которое будет игнорировать определенные операторы.
 "rules": {
   "max-line-length": [
     true, 
     {
       "limit": 120, 
       **"ignore-pattern": "^import [^,]+ from |^export | implements"**
     }
   ],
 } 
}
  1. Путем изменения значения максимальной длины строки по умолчанию в файле tslint.json.
            true,
            {
                "limit": **300**,
                "ignore-pattern": "^import |^export | implements"
            }
        ],
  1. Добавляя комментарий над целевой строкой кода в целевом файле.

// tslint:disable-next-line:max-line-length

// Your code goes here.

Файл tslint.json будет расположен в корневой области каталога проекта.

person sharad jain    schedule 13.03.2020

Я бы переименовал файлы и удалил лишние имена.

И добавление пути к tsconfig, если лица находятся в глубокой структуре папок и используются и в других модулях:

{
    "compilerOptions": {
        "baseUrl": "./src",
        "paths": {
            "@persons/*": [
                "app/shared/foo/bar/persons/*"
            ]
        }
    }
}

Результат:

import { PersonsSingleAccountComponent} from 
   '@persons/information/fragments/account/bookings/single-account-bookings.component'
person Seryoga    schedule 20.09.2019

ты можешь использовать

импорт {

Компонент PersonsSingleAccount

} from '../persons-information/fragments/persons-single-account/persons-single-account-bookings/persons-single-account-bookings.component'`

person fatima fahmi    schedule 11.02.2021