小编Adr*_*uro的帖子

仅类型导入的真实用例是什么,证明增加的冗长是合理的?

当我升级到最新版本的 TypeScript 并发现仅类型导入时,我认为它非常酷并开始在任何地方使用它。

设置仅类型导入一段时间后,我很快意识到我得到了预期的更多冗长和“脏代码”。

没有仅类型导入:

import { SomeType, someFunction, SomeClassToInstantiate } from '@my-app/lib1';
import { OtherType, otherFunction, OtherClassToInstantiate } from '@my-app/lib2';
Run Code Online (Sandbox Code Playgroud)

仅导入类型:

import type { SomeType } from '@my-app/lib1';
import { someFunction, SomeClassToInstantiate } from '@my-app/lib1';
import type { OtherType } from '@my-app/lib2';
import { otherFunction, OtherClassToInstantiate } from '@my-app/lib2';
Run Code Online (Sandbox Code Playgroud)

基本上,我的很多导入都会重复,并且很难跟踪我是否以正确的方式导入所有内容(如果我导入为我在文件中实际使用的类型,则编译器会进行标记 - 但相反的情况则不然)等等,我没有找到任何工具来标记导入仅用作类型并且应该切换到仅类型导入)。

也许我更注意到这个问题,因为我正在使用 NX 并且我的应用程序的很多代码都来自库的桶文件;即,经常发生类型和非类型都必须从同一模块导入的情况。

所以我想知道,在任何地方使用仅类型导入能获得什么实际优势?是否在某些特定情况下使用它肯定有帮助,并且在所有其他情况下都可以绕过它?

如果我上一个问题的答案是应该在可能的情况下始终使用它,那么您是否知道在可以使用类型导入时强制执行类型导入的 linting 规则?

我不喜欢导入量比以前增加近一倍的混乱,甚至不知道它们始终在各地的常规/仅类型导入中划分。

lint typescript type-only-import-export

17
推荐指数
1
解决办法
7399
查看次数

标签 统计

lint ×1

type-only-import-export ×1

typescript ×1