声明文件 .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 做扩展。




