You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建可复用的TypeScript模块声明包供多个React项目导入使用

实现方案

1. 创建独立的通用类型声明包

你可以新建一个轻量npm包,比如命名为@your-scope/common-ts-declarations,包结构无需复杂,核心文件如下:

common-ts-declarations/
├── index.d.ts
└── package.json

把所有需要复用的通用声明都写入index.d.ts,比如你提到的字体、图片声明都可以合并到这里:

// 字体类声明
declare module "*.woff";
declare module "*.woff2";
declare module "*.ttf";

// 图片类声明
declare module "*.jpg" {
  const src: string;
  export default src;
}
declare module "*.png" {
  const src: string;
  export default src;
}
// 其他需要复用的通用声明都可以直接追加到这个文件

然后配置package.json,注意必须加上types字段指向你的声明文件,示例配置:

{
  "name": "@your-scope/common-ts-declarations",
  "version": "1.0.0",
  "description": "通用TypeScript模块声明集合",
  "types": "index.d.ts",
  "author": "你的名称"
}

2. 复用这个声明包

  • 如果是团队场景可以发布到内部npm源,个人使用也可以发布到公开npm,不想发布的话也可以用npm link本地关联,或者直接把包放到项目同级目录用相对路径安装:
# 发布后安装命令
npm i -D @your-scope/common-ts-declarations

# 本地相对路径安装命令
npm i -D ../common-ts-declarations

如果你的多个项目是用monorepo管理的,直接把这个声明包作为内部包放在monorepo的packages目录下即可,无需额外发布。

3. 业务项目配置

安装完成后,只需要在业务项目的tsconfig.json中添加一行配置,把这个包加入类型引用即可:

{
  "compilerOptions": {
    // 保留你原有配置不变,新增下面这行
    "types": ["@your-scope/common-ts-declarations"]
  }
}

也可以选择在业务项目的入口TS文件顶部添加三斜线指令引入,效果完全一致:

/// <reference types="@your-scope/common-ts-declarations" />

后续需要新增或修改通用声明时,只需要更新这个公共包的版本,各个业务项目升级对应版本即可,无需逐个项目修改声明文件。

内容的提问来源于stack exchange,提问作者Nikita Seleckis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 19:24:01