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

如何从d.ts中提取指定类型生成新d.ts文件,如提取Zod推断的Job类型

类型提取解决方案

方案1:手动快速提取(适配少量类型场景)

  • 打开原项目中定义Job类型的TS文件,确保项目无类型编译错误
  • 鼠标悬停在Job类型名上,VSCode会自动展示Zod推断完成的完整类型定义,点击类型旁的展开按钮可查看全量结构,示例如下:
type Job = {
    jobName: string;
    startAfter: Date;
    retry?: boolean;
    retryAfter?: Date;
    runCount?: number;
    data?: Record<string, any>;
    status?: "ready" | "running" | "finished";
}
  • 直接复制该类型定义到新项目的类型文件中即可使用,无额外依赖。

提示:该方案操作成本极低,仅适合1-5个以内的零散类型提取需求。

方案2:api-extractor自动生成精简声明(适配多类型/定期更新场景)

如果需要批量提取类型或者定期同步更新,可通过自动化工具实现:

  • 原项目新增单独的导出入口文件,仅对外暴露你需要的目标类型:
// export-entry.ts
export type { Job } from './你的Job类型定义文件路径'
  • 调整原项目tsconfig.json配置,开启声明文件生成:
{
  "compilerOptions": {
    "declaration": true,
    "emitDeclarationOnly": true,
    "outDir": "./temp-dts"
  }
}
  • 运行tsc生成临时声明文件后,用api-extractor扫描入口文件,工具会自动过滤掉所有未导出的内部类型、Zod相关依赖类型,仅保留你指定导出的Job类型,最终生成单文件精简声明,体积远小于全量导出的d.ts文件。

方案3:ts-morph自定义脚本提取(适配高度定制化场景)

如果有特殊的类型转换、过滤需求,可以自定义小脚本实现提取逻辑:

  • 安装ts-morph依赖
  • 编写脚本加载原项目的TS配置,定位到Job类型的定义节点,直接输出其解析后的完整类型文本到目标文件,全程可自定义处理逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 03:18:03