Остановить typescript-eslint / явные типы границ модуля, которые будут применены к компоненту vue, не использующему Typescript

#typescript #vue.js #typescript-eslint

#typescript #vue.js #typescript-eslint

Вопрос:

Я использую vue и только что обновил @typescript-eslint/eslint-plugin": "^3.10.1" . Мой проект содержит несколько компонентов. Некоторые из них используют javascript и другие typescript .

Предупреждение

У меня есть это предупреждение для методов внутри не typescript компонентов

предупреждение: Отсутствует возвращаемый тип в функции (@typescript-eslint /явные типы границ модуля)

Вопрос

Как я мог не применить это правило к .vue файлу, который не использует <script lang="ts"> ?

Комментарии:

1.Я сталкиваюсь с той же проблемой. Похоже, это ограничение eslint-plugin-vue плагина — он применяет правила Typescript как к Vue javascript <script> , так и кКомпоненты с одним файлом на Typescript <script lang="ts" . К сожалению, мы не можем получить чистый вывод eslint при повторном использовании таких смешанных компонентов из других источников. Вы нашли решение?

Ответ №1:

Итак, цель этого правила — обеспечить, чтобы экспортируемые модули имели понятный интерфейс для тех, кто использует его извне. На странице правил, кажется, имеет смысл использовать для .ts файлов вместо .vue files, но вы можете судить по потребностям вашего проекта.

Для моего проекта я использовал предложенную overrides конфигурацию:

 {
  "rules": {
    // disable the rule for all files
    "@typescript-eslint/explicit-module-boundary-types": "off"
  },
  "overrides": [
    {
      // enable the rule specifically for TypeScript files
      "files": ["*.ts", "*.tsx"],
      "rules": {
        "@typescript-eslint/explicit-module-boundary-types": ["error"]
      }
    }
  ]
}
  

Кроме этого, я не думаю, что у вас есть filters что сказать on the caught .vue files by eslint, only apply the rule on the ones matched by: 'having <script lang="ts">' .

Возможно, вам лучше использовать встроенные комментарии для этих специфических ошибок.

Редактировать

Другим решением, которое я вижу, может быть ручной список ваших файлов в .eslint.config файле.

Смотрите также

Если вы хотите вставить файл с учетом типа: проверьте опцию включения каждого из tsconfigs, которые вы предоставляете parserOptions.project — вы должны убедиться, что все файлы соответствуют глобусу include, иначе наши инструменты не смогут его найти. Если ваш файл не должен быть частью одного из ваших существующих tsconfigs (например, это скрипт / инструмент, локальный для репозитория), тогда рассмотрите возможность создания нового tsconfig (мы рекомендуем называть его tsconfig.eslint.json) в корне вашего проекта, который перечисляет этот файл в своем include. Для примера этого вы можете ознакомиться с конфигурацией, которую мы используем в этом репозитории: tsconfig.eslint.json .eslintrc.js