我观察到 @typescript-eslint/consistency-type-imports 将我的类组件声明为导入声明中的类型:
import type { Client } from "../shared/domains/client";
我期望有:
import { Client } from "../shared/domains/client";
我认为当我们声明时:
import type AType from "./Abc"
我们确信 AType 是导出声明中的类型或接口。
我觉得很奇怪:
"import type AClass from "./Abc"
并且看到 AClass 是一个类组件,而不是类型或接口。
这就是我问是否有一个选项可以添加的原因,以便使用 @typescript-eslint/consistent-type-imports 并仅应用类型或接口导出组件的更改。
正如@jonrsharpe所说
导入类型 ... 当您只需要导入的类型而不是值时使用。
import
:导入类型和值
import
语句用于从模块导入类型和值(函数、类、变量、对象等)。当您使用常规 import
时,TypeScript 将导入类型信息以及实际的运行时值。
import type
:仅导入类型
TypeScript 中引入的
import type
语句用于仅从模块导入类型信息。它表明您有兴趣使用导出值的类型,而不是实际的运行时值。
此外,我们使用导入类型将类型用于类型检查目的,而不在发出的 JavaScript 代码中包含模块的实际运行时值。
参考: https://medium.com/@quizzesforyou/import-vs-import-type-in-typescript-8e5177b62bea