ESLint: внутри модуля объявления разрешены только объявления и импорт типов. - PullRequest
0 голосов
/ 04 августа 2020

Я попытался добавить это в свой файл interfaces.ts , но у ESLint его нет:

declare module 'react' {
  interface HTMLAttributes<T> extends AriaAttributes, DOMAttributes<T> {
    // extends React's HTMLAttributes
    name?: string;
    ref?: HTMLAnchorElement;
    cssClass?: string;
  }
}

Ошибка синтаксического анализа ESLint: `Только объявляет и разрешен импорт типов

Я получаю ту же ошибку с этим фрагментом кода, который находится в images.d.ts , где ему не нравится ключевое слово const:

declare module '*.png' {
 const value: any;
 export = value;
}

Все ли просто помещают такой код в пользовательские .d.ts файлы и говорят eslint игнорировать его?

внутри модуля декларации` .eslintr c

{
  "extends": [
    "airbnb",
    "eslint:recommended",
    "plugin:react/recommended",
    "plugin:import/errors"
  ],
    "plugins": ["react"],
    "parser": "babel-eslint",
    "parserOptions": {"ecmaFeatures": {"jsx": true}},
    "env": {"mocha": true},
    "rules": {"comma-dangle": 0,
    "max-classes-per-file": [0],
    "jsx-a11y/href-no-hash": [0],
    "complexity": ["error", {"max": 6}],
    "handle-callback-err": "error",
    "import/default": [0],
    "import/order": [0],
    "max-statements": ["error", 30],
    "no-console": [0],
    "no-constant-condition": "error",
    "no-param-reassign": ["error", {"props": false}],
    "no-process-exit": "error",
    "no-useless-call": "error",
    "react/no-danger": [0],
    "react/jsx-indent-props": [0],
    "react/jsx-filename-extension": [1, {"extensions": [".tsx"]}],
    "react/jsx-indent": [0],
    "react/jsx-tag-spacing": ["error", { "beforeSelfClosing": "always" }],
    "react/jsx-sort-props": ["error", {"ignoreCase": false, "noSortAlphabetically": false}],
    "react/prefer-stateless-function": [0, { "ignorePureComponents": true }],
    "react/no-multi-comp": [0, { "ignoreStateless": true }],
    "react/require-optimization": [0],
    "react/prop-types": [0],
    "react/no-array-index-key": [1],
    "semi": ["error", "always"],
    "import/no-extraneous-dependencies": [0],
    "react/destructuring-assignment": [0],
    "react/jsx-closing-bracket-location": [1, "after-props"],
    "jsx-one-expression-per-line": [0],
    "import/extensions": [0],
    "import/no-unresolved": [0],
    "no-multiple-empty-lines": [0],
    "one-var": [0],
    "max-len": ["error", { "code": 140 }],
    "implicit-arrow-linebreak": [0],
    "no-shadow": [0],
    "function-paren-newline": [0],
    "no-tabs": [0],
    "indent": [1, "tab"],
    "no-use-before-define": [0],
    "no-nested-ternary": [1],
    "no-restricted-syntax": [1],
    "no-plusplus": [1],
    "react/no-find-dom-node": [1]
  }
}

1 Ответ

0 голосов
/ 04 августа 2020

Есть 2 способа решить эту проблему.

  1. ESLint считает .d.ts файлы как .js

    Добавьте их в свой .eslintignore файл, который будет исправьте проблему для вас:)

    /**/*.d.ts
    
  2. Добавьте этот пакет yarn add --dev @typescript-eslint/parser

    Ссылка: Ссылка на GitHub

    И добавьте в свой .eslintr c

    module.exports = {
        ...
        parserOptions: {
        parser: "@typescript-eslint/parser"
    },
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...