Отсутствует точка с запятой после объявления интерфейса - PullRequest
0 голосов
/ 06 мая 2020

У меня небольшая проблема с ESLint и Typescript, особенно с точками с запятой, после объявления моих интерфейсов. Кроме того, я использую VSCode в качестве редактора и автоматически c форматирование при сохранении.

Вот мой файл конфигурации .eslintr c. 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;
};;;;;;;;;;;

У кого-нибудь есть идея? большое спасибо

1 Ответ

0 голосов
/ 06 мая 2020

Ну вроде это из инструкции "экспорт по умолчанию". ESLint не может правильно управлять настройками по умолчанию и интерфейсом. Я сделал простой экспорт, и он работает. Что ж, после этого у меня не будет возможности сделать «экспорт по умолчанию», но, если проанализировать мой код больше, он мне не обязательно понадобится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...