如何只允许从 TypeScript 中的模块导入类型?

问题描述 投票:0回答:0

在 monorepo 中,我有两个模块,ModuleA 和 ModuleB。在 ModuleB 中,我想使用 ModuleA 中的类型,但从未实际导入任何值。这是因为 ModuleB 可能未与 ModuleA 捆绑在一起,因此它不应在运行时从中导入任何内容(事实上,ModuleA 在运行时可能不存在)。根据我的理解,这就是

import type ...
语法的目的,它只导入编译时类型,但在运行时什么都不做。 如何将 Typescript 配置为仅允许从 ModuleA 导入编译时类型,以便它永远不会在编译的 JavaScript 中导入?

在我的 tsconfig 我目前有这个:

"paths": {
  "ModuleA": [
    "../node_modules/ModuleA/dist/esm/index.d.ts"
  ]
}

但这显然允许导入任何东西,包括运行时值。

typescript tsconfig
© www.soinside.com 2019 - 2024. All rights reserved.