Тип импорта Typescript Eslint: import / named - PullRequest
1 голос
/ 20 марта 2019

Я использую Eslint для своего проекта, используйте:

  • парсер: @typescript-eslint/parser 1.4.2
  • плагин: @typescript-eslint/eslint-plugin 1.4.2
  • распознаватель: eslint-import-resolver-typescript 1.1.1
  • Правило распространяется: airbnb-base и plugin:@typescript-eslint/recommended

или вы можете проверить мой .eslintrc:

{
  "parser": "@typescript-eslint/parser",
  "plugins": [
    "@typescript-eslint"
  ],
  "extends": ["airbnb-base", "plugin:@typescript-eslint/recommended"],
  "settings": {
    "import/parsers": {
      "@typescript-eslint/parser": [".ts"]
    },
    "import/resolver": {
      "typescript": {}
    }
  },
  "rules": {
    "no-plusplus": "off",
    "import/no-cycle": "warn",
    "@typescript-eslint/indent": ["error", 2],
    "@typescript-eslint/explicit-member-accessibility": "off"
  }
}

В файле A.ts Я использую: export type Id = string; и импортирую из B.ts: import { Id } from '../A';

Я пытался использовать:

import A from '../A';

и вызовите A.Id, но с ошибкой выброса:

A относится только к типу, но используется здесь как пространство имен

У двухсторонней ошибки есть ошибка, одна из eslint, другая из IDE (против кода, может быть, Tshint)

Можете ли вы помочь мне исправить один из них?

Спасибо заранее!

Ответы [ 2 ]

3 голосов
/ 20 марта 2019

Не думаю, что ваша ошибка связана с Eslint. Из того, что я вижу, похоже, что это основная ошибка Typescript.

Ваш A.ts не содержит экспорт по умолчанию. Чтобы импортировать весь модуль из A.ts, вы должны использовать

import * as A from '../A';

См. Также документацию Typsescript по import операторам

0 голосов
/ 20 марта 2019

Вы пробовали это?

import A as A from '../A'; 
...