TSLint错误"超过最大行长度120"

时间:2017-03-09 10:40:10

标签: angular typescript tslint

在我的Angular2应用程序中,我导入了一个这样的组件:

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

它给了我lint错误"超过最大线字符"。如果我试着在``(反引号)中给出语句,则会抛出错误。

如何解决此lint错误?

6 个答案:

答案 0 :(得分:46)

这不是你可以改变的,与你的代码无关。

您应该通过在以下位置添加评论来禁用此导入规则:

// 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'

答案 1 :(得分:14)

还有另一种方法可以消除此错误-为整个项目修改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 ],
    }
}

另外,请结帐this link以获得更高级的设置。

答案 2 :(得分:10)

还有另一种解决此问题的方法。

自版本5.9.0 TSLint max-line-length rule开始,支持忽略模式。

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 :(得分:2)

他们有两种方式处理 tslint -最大线长度警告。下面提到3种方法。

  1. 通过在 tslint.json 文件中提供规则,该规则将忽略特定语句。

    { “规则”:{ “最大线长”:[ 真正, { “限制”:120, “忽略模式”:“从| ^ export |工具实现^ import [^,] +” } ], } }

  2. 通过更改 tslint.json 文件中的默认最大行长字符值。

    “最大行长”:[ 真正, { “限制”: 300 , “ ignore-pattern”:“ ^ import | ^ export |工具” } ]

  3. 通过在目标文件的目标代码行上方添加注释。

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

    //您的代码在这里。

    tslint.json 文件将位于项目目录的根范围内。

答案 4 :(得分:0)

我将重命名文件并删除多余的命名。

如果人员位于深层文件夹结构中并且也用于其他模块中,并向tsconfig添加路径:

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

结果:

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

答案 5 :(得分:0)

你可以使用

导入{

PersonsSingleAccountComponent

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