typescript/no-import-type-side-effects 限制
它的作用
当 import 只有包含内联类型限定符的限定符时,强制使用顶级 import type
限定符。
为什么这不好?
--verbatimModuleSyntax
编译器选项导致 TypeScript 对 import 声明执行简单且可预测的转换。它**完全**删除了带有顶级类型限定符的 import 声明,并删除了带有内联类型限定符的所有 import 限定符。
后一种行为确实有一个潜在的令人惊讶的效果,即在某些情况下,TS 可以在运行时留下一个“副作用”import
ts
import { type A, type B } from "mod";
被编译为
ts
import {} from "mod";
// which is the same as
import "mod";
对于需要导入以产生副作用的罕见情况,这可能是可取的,但对于大多数情况,你不会希望留下不必要的副作用 import。
示例
ts
import { type A } from "mod";
import { type A as AA } from "mod";
import { type A, type B } from "mod";
import { type A as AA, type B as BB } from "mod";