TypeScript 词条目录
前端Wiki/TypeScript/深入/模块与声明文件

声明文件 .d.ts

声明文件(.d.ts)只写类型、不写实现,作用是给 JS 代码补类型说明:老库没类型、CDN 脚本注入全局变量、内联脚本这些场景,靠它让 TS 认识这些 API。

三招最常用:declare 声明全局变量/函数;declare module 给无类型库补形状;interface 合并扩展已有类型(给 Vue 组件实例加属性)。全局脚本入口记得写三斜线引用 /// <reference types="..." />。

  • declare var / declare function:告诉 TS 某个全局已存在
  • declare module 'lib':给无类型库手工补形状
  • interface 同名合并:扩展框架已有类型(如 Vue 的 ExampleComponent)
TS
// global.d.ts —— 全局声明
declare const VERSION: string;
declare function legacyFormat(n: number): string;

// 给无类型的老库补形状
declare module 'old-lib' {
  export function pack(data: object): string;
}

// 扩展已有声明:给 Vue 全局组件补类型
declare module 'vue' {
  interface ExampleComponent {
    $myHelper(): void;
  }
}

// src/use.ts —— 消费侧
console.log(VERSION);
console.log(legacyFormat(42));
JS
// .d.ts 编译后不产生任何代码,消费侧产物里类型声明消失
// 假设全局由前置脚本注入:
window.VERSION = '1.0.0';
console.log(VERSION);   // '1.0.0'
// legacyFormat 与 old-lib 由各自运行时提供
本节要点.d.ts 是 JS 世界的类型说明书:declare 补全局、declare module 补老库、同名 interface 做扩展。