Typescript 导入类型 Eslint:import/named

Typescript import type Eslint: import/named

我的项目使用 Eslint,使用:

或者你可以查看我的 .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 但 ide 抛出错误:

A only refers to a type, but is being used as a namespace here

两种方法都有错误,一种来自eslint,一种来自IDE(Vs Code,可能是Tshint)

你能帮我解决其中一个问题吗?

提前致谢!

你试过吗?

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

我认为您的错误与 Eslint 无关。据我所知,这似乎是一个基本的 Typescript 错误。

您的 A.ts 不包含默认导出。为了从 A.ts 导入整个模块,您应该使用

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

另见 Typsescript documentation on import statements