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

如何从单个index.d.ts导出所有d.ts类型文件?

解决TypeScript从index.d.ts导出其他类型文件的问题

问题原因分析

你遇到的两个报错本质是同一个问题:event.d.ts没有被定义为模块,同时导入路径不能带.d.ts后缀。

  • 第一个报错:TypeScript不允许导入路径以.d.ts结尾,必须省略后缀
  • 第二个报错:event.d.ts里的接口是全局类型,不属于任何模块,无法通过export *导入

正确解决方案

步骤1:将event.d.ts转为模块

在event.d.ts中给接口添加export关键字,让文件成为合法的TypeScript模块:

// types/event.d.ts
export interface EventJD {
  typeName: string;
  fieldName: string;
}

步骤2:在index.d.ts中导出模块内容

现在可以通过省略后缀的路径导入并导出所有类型:

// types/index.d.ts
export * from "./event";

特殊情况处理(无需修改原event.d.ts)

如果无法修改原event.d.ts文件(比如是第三方类型定义),可以在index.d.ts中手动导入并导出需要的类型:

// types/index.d.ts
// 先导入全局类型
import type "./event";
// 重新导出指定类型
export type EventJD = EventJD;

这种方式适合全局类型文件,但需要逐个导出每个类型,不如将文件转为模块的方式高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 15:55:14