nx React/Next.js 共享类型声明文件

Mau*_*ayo 2 typescript reactjs next.js

我的工作区中有一个nx Next.js 应用程序,我正在使用样式组件,因此我styled.d.ts为主题的类型声明创建了一个文件,如文档中所述。我将其放在我的根目录中app并按预期工作:

\n
workspace\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 apps\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 app\n        \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 styled.d.ts\n
Run Code Online (Sandbox Code Playgroud)\n

但现在,我创建了一个组件库,并想在那里使用我的主题类型定义,所以我复制styled.d.tslibs/

\n
workspace\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 apps\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 app\n\xe2\x94\x82       \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 styled.d.ts\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 libs\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 components-library\n        \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 styled.d.ts\n
Run Code Online (Sandbox Code Playgroud)\n

这有效,我在应用程序和组件库上都有主题类型定义,但我正在复制该文件。我尝试将其放在工作区的根目录上,但没有成功。

\n

关于如何共享styled.d.ts而不重复的任何想法?

\n

小智 7

我们还使用带有类型声明文件的样式组件。types为了在多个应用程序和库中使用它,我们在根级别创建了一个文件夹。我们在那里放置声明文件。例如types/styled-components/index.d.ts

接下来转到您的tsconfig.lib.jsontsconfig.app.json。在里面扩展files新类型的部分:

  "files": [
    "...",
    "../../types/styled-components/index.d.ts",
  ],
Run Code Online (Sandbox Code Playgroud)