因此,随着 Angular 11 弃用 TSLint,我切换到了 ESLint(目前对它不太满意)。
现在我有这个烦人的间距问题,我正在尝试在 .eslintrc.js 配置中解决。
拿这几行代码(这是我拥有的,也是我想要保留的):
readonly DELETE_DIALOG_MESSAGE = "This message doesn't exceed the width limit & is 1 line.";
readonly RETURN_TO_DRAFT_MESSAGE =
"This message is supper long, like really loooong. So it exceeds my width limit and is dropped a line.";
您看到较长消息的删除线后的缩进吗?我想保留它。但是 ESLint 正在删除它。
ESLint 使它看起来像这样:
readonly DELETE_DIALOG_MESSAGE = "This message doesn't exceed the width limit & is 1 line.";
readonly RETURN_TO_DRAFT_MESSAGE =
"This message is supper long, like really loooong. So it exceeds my width limit and is dropped a line.";
看?没有缩进。这更令人沮丧,因为(我使用 prettier 进行格式化)我的格式化程序会将空间添加回来。
我试图找到切换规则/配置会在超出宽度限制时删除行时添加缩进。
任何帮助,将不胜感激!
我的缩进规则是:"@typescript-eslint/indent": ["error", 2],
这是我的整个 .eslintrc.js 配置文件:
module.exports = {
env: {
browser: true,
es6: true,
node: true
},
extends: ["prettier", "prettier/@typescript-eslint"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: "tsconfig.json",
sourceType: "module"
},
plugins: [
"eslint-plugin-import",
"eslint-plugin-jsdoc",
"@angular-eslint/eslint-plugin",
// "eslint-plugin-react",
"@typescript-eslint",
"@typescript-eslint/tslint"
],
rules: {
"@angular-eslint/component-class-suffix": "error",
"@angular-eslint/directive-class-suffix": "error",
"@angular-eslint/no-host-metadata-property": "error",
"@angular-eslint/no-input-rename": "error",
"@angular-eslint/no-inputs-metadata-property": "error",
"@angular-eslint/no-output-on-prefix": "error",
"@angular-eslint/no-output-rename": "error",
"@angular-eslint/no-outputs-metadata-property": "error",
"@angular-eslint/use-lifecycle-interface": "error",
"@angular-eslint/use-pipe-transform-interface": "error",
"@typescript-eslint/consistent-type-definitions": "error",
"@typescript-eslint/dot-notation": "off",
"@typescript-eslint/explicit-member-accessibility": [
"off",
{
accessibility: "explicit"
}
],
"@typescript-eslint/indent": ["error", 2],
"@typescript-eslint/member-delimiter-style": [
"error",
{
multiline: {
delimiter: "semi",
requireLast: true
},
singleline: {
delimiter: "semi",
requireLast: false
}
}
],
"@typescript-eslint/member-ordering": "off",
"@typescript-eslint/naming-convention": "off",
"@typescript-eslint/no-empty-function": "off",
"@typescript-eslint/no-empty-interface": "error",
"@typescript-eslint/no-inferrable-types": [
"error",
{
ignoreParameters: true
}
],
"@typescript-eslint/no-misused-new": "error",
"@typescript-eslint/no-non-null-assertion": "error",
"@typescript-eslint/prefer-function-type": "error",
"@typescript-eslint/quotes": "off",
"@typescript-eslint/semi": ["error", "always"],
"@typescript-eslint/type-annotation-spacing": "error",
"@typescript-eslint/unified-signatures": "error",
"arrow-body-style": ["off"],
"arrow-parens": ["off", "always"],
"brace-style": ["error", "1tbs"],
"comma-dangle": "off",
"constructor-super": "error",
curly: "error",
"eol-last": "error",
eqeqeq: ["error", "smart"],
"guard-for-in": "error",
"id-blacklist": "off",
"id-match": "off",
"import/no-deprecated": "warn",
"jsdoc/no-types": "error",
"linebreak-style": "off",
"max-len": [
"error",
{
code: 140
}
],
"new-parens": "off",
"newline-per-chained-call": "off",
"no-bitwise": "error",
"no-caller": "error",
"no-console": [
"error",
{
allow: [
"log",
"dirxml",
"warn",
"error",
"dir",
"timeLog",
"assert",
"clear",
"count",
"countReset",
"group",
"groupCollapsed",
"groupEnd",
"table",
"Console",
"markTimeline",
"profile",
"profileEnd",
"timeline",
"timelineEnd",
"timeStamp",
"context"
]
}
],
"no-debugger": "error",
"no-empty": "off",
"no-eval": "error",
"no-extra-semi": "off",
"no-fallthrough": "error",
"no-irregular-whitespace": "off",
"no-multiple-empty-lines": "off",
"no-new-wrappers": "error",
"no-restricted-imports": ["error", "rxjs/Rx"],
"no-shadow": [
"off",
{
hoist: "all"
}
],
"@typescript-eslint/no-shadow": ["error"],
"no-throw-literal": "error",
"no-trailing-spaces": "error",
"no-undef-init": "error",
"no-underscore-dangle": "off",
"no-unused-labels": "error",
"no-var": "error",
"prefer-const": "error",
"quote-props": "off",
radix: "error",
"react/jsx-curly-spacing": "off",
"react/jsx-equals-spacing": "off",
"react/jsx-wrap-multilines": "off",
"space-before-function-paren": "off",
"space-before-blocks": "error",
"space-in-parens": ["off", "never"],
"spaced-comment": [
"error",
"always",
{
markers: ["/"]
}
],
"@typescript-eslint/tslint/config": [
"error",
{
rules: {
"import-spacing": true,
whitespace: [true, "check-branch", "check-decl", "check-operator", "check-separator", "check-type"]
}
}
]
}
};