首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在单列中如何使用tsconfig.json“type”字段?

在单列中如何使用tsconfig.json“type”字段?
EN

Stack Overflow用户
提问于 2022-08-06 19:13:32
回答 1查看 385关注 0票数 5

第1部分--使用“类型”字段的示例

TypeScript库A除了提供的“正常”导出之外,还提供了类型定义,如下所示:

代码语言:javascript
复制
declare global {
  function someGlobalFunction(): void;
}

库B使用库A的类型定义,因此,在B库的tsconfig.json中,我们将:

代码语言:javascript
复制
"types": ["library-a"],

通过这样做,使用error.

  • Obviously,不再会产生编译器,这需要将“库-a”列为库B的package.json中的依赖项。显然,它还要求在"node_modules“subdirectory.中安装和提供”库-a“。

第2部分-A Monorepo

我有一个TypeScript单峰。(它使用NX作为monorepo工具,Yarn作为包管理器,但这可能并不重要,因为这个问题适用于任何类型的TypeScript monorepo。)

如果类库A和库B都在我的monorepo中,如何复制第1部分中的设置?

首先,monorepo使用tsconfig.json文件中的tsconfig.json字段,以便包可以相互导入,而不必实际安装它们。这是琐碎的事情,而且效果很好。但是,如果我们使用types字段,它就会崩溃,因为pathstypes似乎没有被编程一起工作。具体地说:

  • 如果我像以前一样尝试指定"types": ["library-a"],TypeScript就找不到它,说没有找到library-a。如果我尝试添加一个typeRoots字段来指向正确的"dist“目录,那么我可以克服这个错误,但是对于所有的单个符号仍然会得到一堆”未找到“的错误。如果我只是直接安装library-a,那么一切都能工作,但是这样做首先会失败使用monorepo的全部点。H 227f 228

包从monorepo中的另一个包导入类型的正确方法是什么?

如果需要的话,我可以提供一个最小的reprex回购来说明问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-14 02:06:35

我在library-btsconfig.json中成功地实现了您想要的结果。

代码语言:javascript
复制
{
  "compilerOptions": {
    "types": ["../library-a"],
    "typeRoots": ["../library-a/types"],
    "paths": {
      "library-a": ["../library-a/index.ts"]
    }
  }
}

有关完全复制,请参见https://github.com/Maxim-Mazurok/ts-2libs

万一我弄错了-请分叉或提供你自己的复制品。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73262618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档