TSLint 错误 "Exceeds maximum line length of 120"
TSLint Error "Exceeds maximum line length of 120"
在我的 Angular2 应用程序中,我正在导入这样一个组件:
import { PersonsSingleAccountComponent} from
'../persons-information/fragments/persons-single-account/persons-single-account-bookings/persons-single-account-bookings.component'
它给我 lint 错误 "Exceeds maximum line character"。如果我尝试在 ``(backtick) 中给出语句,它会抛出错误。
如何解决此 lint 错误?
这不是真正可以更改的东西,与您的代码无关。
您应该通过在之前添加评论来简单地禁用此导入的规则:
// 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'
还有另一种方法可以消除此错误 - 修改整个项目的 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 以获得更多高级设置。
还有另一种方法可以解决这个问题。
自版本 5.9.0 TSLint max-line-length rule 提供对忽略模式的支持。
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 };
致谢名单 DanielKucal。
对于 OP 的问题,使用 ^import [^,]+ from
足以忽略长导入。
恕我直言,这是一种更好的方法,因为它比修改整个项目的 TSLint 规则侵入性更小,并且没有代码味道,就好像您在每个文件中通过注释禁用 TSLint 规则一样。
我会重命名文件并删除多余的命名。
如果这些人位于深层文件夹结构中并且也在其他模块中使用,则向 tsconfig 添加路径:
{
"compilerOptions": {
"baseUrl": "./src",
"paths": {
"@persons/*": [
"app/shared/foo/bar/persons/*"
]
}
}
}
结果:
import { PersonsSingleAccountComponent} from
'@persons/information/fragments/account/bookings/single-account-bookings.component'
他们有几种方法来处理 tslint - max-line-length 警告。下面提到3种方式。
- 通过在 tslint.json 文件中提供将忽略特定语句的规则。
"rules": {
"max-line-length": [
true,
{
"limit": 120,
**"ignore-pattern": "^import [^,]+ from |^export | implements"**
}
],
}
}
- 通过更改 tslint.json 文件中的默认最大行长度字符值。
true,
{
"limit": **300**,
"ignore-pattern": "^import |^export | implements"
}
],
- 通过在目标文件中的目标代码行上方添加注释。
// tslint:disable-next-line:max-line-length
// Your code goes here.
tslint.json 文件将位于项目目录的根范围内。
你可以使用
进口{
PersonsSingleAccountComponent
} 来自 '../persons-information/fragments/persons-single-account/persons-single-account-bookings/persons-single-account-bookings.component'`
在我的 Angular2 应用程序中,我正在导入这样一个组件:
import { PersonsSingleAccountComponent} from
'../persons-information/fragments/persons-single-account/persons-single-account-bookings/persons-single-account-bookings.component'
它给我 lint 错误 "Exceeds maximum line character"。如果我尝试在 ``(backtick) 中给出语句,它会抛出错误。
如何解决此 lint 错误?
这不是真正可以更改的东西,与您的代码无关。
您应该通过在之前添加评论来简单地禁用此导入的规则:
// 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'
还有另一种方法可以消除此错误 - 修改整个项目的 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 以获得更多高级设置。
还有另一种方法可以解决这个问题。
自版本 5.9.0 TSLint max-line-length rule 提供对忽略模式的支持。
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 };
致谢名单 DanielKucal。
对于 OP 的问题,使用 ^import [^,]+ from
足以忽略长导入。
恕我直言,这是一种更好的方法,因为它比修改整个项目的 TSLint 规则侵入性更小,并且没有代码味道,就好像您在每个文件中通过注释禁用 TSLint 规则一样。
我会重命名文件并删除多余的命名。
如果这些人位于深层文件夹结构中并且也在其他模块中使用,则向 tsconfig 添加路径:
{
"compilerOptions": {
"baseUrl": "./src",
"paths": {
"@persons/*": [
"app/shared/foo/bar/persons/*"
]
}
}
}
结果:
import { PersonsSingleAccountComponent} from
'@persons/information/fragments/account/bookings/single-account-bookings.component'
他们有几种方法来处理 tslint - max-line-length 警告。下面提到3种方式。
- 通过在 tslint.json 文件中提供将忽略特定语句的规则。
"rules": {
"max-line-length": [
true,
{
"limit": 120,
**"ignore-pattern": "^import [^,]+ from |^export | implements"**
}
],
}
}
- 通过更改 tslint.json 文件中的默认最大行长度字符值。
true,
{
"limit": **300**,
"ignore-pattern": "^import |^export | implements"
}
],
- 通过在目标文件中的目标代码行上方添加注释。
// tslint:disable-next-line:max-line-length
// Your code goes here.
tslint.json 文件将位于项目目录的根范围内。
你可以使用
进口{
PersonsSingleAccountComponent
} 来自 '../persons-information/fragments/persons-single-account/persons-single-account-bookings/persons-single-account-bookings.component'`