2

在声明我的接口之后,我对 ESLint 和 Typescript 有一点问题,尤其是在分号上。此外,我使用 VSCode 作为编辑器并在保存时自动格式化。

这是我的配置文件 .eslintrc.json:

{
  // "parser": "babel-eslint",
  "parser": "@typescript-eslint/parser",
  "plugins": ["@typescript-eslint", "babel", "standard"],
  "parserOptions": {
    "ecmaVersion": 2017,
    "sourceType": "module"
  },
  "env": {
    "es6": true,
    "browser": true,
    "amd": true,
    "node": true,
    "jest": true
  },
  "globals": {},
  // "extends": ["eslint:recommended"],
  "extends": ["plugin:@typescript-eslint/recommended"],
  "rules": {
    "array-bracket-spacing": ["error", "never", {}],
    "brace-style": "error",
    "camelcase": ["error", { "properties": "never" }],
    "comma-dangle": [
      "error",
      {
        "arrays": "never",
        "objects": "never",
        "imports": "never",
        "exports": "never",
        "functions": "never"
      }
    ],
    "comma-spacing": ["error", { "before": false, "after": true }],
    "comma-style": ["error", "last"],
    "complexity": ["warn", 7],
    "computed-property-spacing": ["error", "never"],
    "curly": ["error", "all"],
    "dot-notation": ["error", { "allowPattern": "^[a-z]+(_[a-z]+)+$" }],
    "eol-last": "error",
    "eqeqeq": ["error", "always"],
    "for-direction": "off",
    "func-call-spacing": ["error", "never"],
    "indent": [
      "error",
      2,
      {
        "ArrayExpression": "first",
        "CallExpression": { "arguments": "first" },
        "flatTernaryExpressions": false,
        "MemberExpression": 1,
        "ObjectExpression": "first",
        "outerIIFEBody": 0,
        "SwitchCase": 1,
        "VariableDeclarator": { "var": 2, "let": 2, "const": 3 }
      }
    ],
    "key-spacing": ["error", { "beforeColon": false, "afterColon": true }],
    "keyword-spacing": ["error"],
    "linebreak-style": ["error", "unix"],
    "max-depth": ["error", 3],
    "multiline-comment-style": ["error", "starred-block"],
    "no-caller": "error",
    "no-cond-assign": ["error", "except-parens"],
    "no-console": ["error", { "allow": ["warn", "error"] }],
    "no-empty": "error",
    "no-loop-func": "error",
    "no-mixed-spaces-and-tabs": "error",
    "no-multiple-empty-lines": ["error", { "max": 1 }],
    "no-multi-str": "error",
    "no-new": "error",
    "no-self-assign": ["error", { "props": false }],
    "no-sequences": "error",
    "no-trailing-spaces": "error",
    "no-undef": "error",
    "no-unreachable": "error",
    "no-unsafe-negation": "error",
    "no-unused-expressions": ["error", { "allowShortCircuit": true }],
    //"no-unused-vars": "error",
    "no-unused-vars": "warn",
    "no-with": "error",
    "object-curly-spacing": ["error", "always"],
    "one-var": [
      "error",
      { "var": "always", "let": "consecutive", "const": "never" }
    ],
    "one-var-declaration-per-line": ["error", "initializations"],
    "operator-linebreak": ["error", "after"],
    "quotes": ["error", "single"],
    "semi": ["error", "always"],
    "semi-spacing": ["error", { "before": false, "after": true }],
    "semi-style": ["error", "last"],
    "space-before-blocks": ["error", "always"],
    "space-before-function-paren": ["error", "never"],
    "space-in-parens": ["error", "never"],
    "space-infix-ops": "error",
    "space-unary-ops": ["error", { "words": true, "nonwords": false }],
    "wrap-iife": ["error", "inside", { "functionPrototypeMethods": true }]
  }
}

这是我的 Typescript 文件的内容,这让我很担心:

export default interface ComponentProperties {
  id: string;
  context?: string;
}

在我的结束括号之后,eslint 对我说:“缺少分号”。好的,我添加了我的分号,但是 VSCode 给我添加了几个分号......它总是告诉我我缺少一个分号。

export default interface ComponentProperties {
  id: string;
  context?: string;
};;;;;;;;;;;

有人有想法吗?太感谢了

4

1 回答 1

3

好吧,它似乎来自“导出默认”指令。ESLint 无法正确管理默认值和接口。我做了一个简单的导出,它可以工作。好吧,在那之后我没有可能做出“导出默认值”,但是通过更多地分析我的代码,我不一定需要它。

于 2020-05-06T14:09:09.243 回答