Skip to content

声明文件

TypeScript 通常以 为扩展名,它们的作用是为 TypeScript 编译器提供缺失的类型信息,特别是针对那些没有直接提供类型定义的 JavaScript 库。声明文件让开发者在使用这些外部库时,能够享受到 TypeScript 的静态类型检查和智能提示等优势,而不必手动编写类型注解。以下是关于 .d.ts 声明文件的一些关键点和使用方法:

基本结构

声明文件的基本结构类似于普通的 TypeScript 文件,但它们不包含实际的实现代码,而是专注于类型定义。一个简单的声明文件可能看起来像这样:

ts
// myLib.d.ts
declare module "myLib" {
  export function doSomething(input: string): number;
  export interface MyLibOptions {
    debug?: boolean;
  }
}

导入和导出

  • declare module: 用于定义一个模块的类型,如上例所示,它描述了模块 myLib 的类型信息。
  • export: 用于公开模块内的类型,使得其他文件可以通过 import 语句来使用这些类型。

全局声明

如果你需要定义全局变量或函数,可以使用 关键字在全局作用域声明它们:

ts
// global.d.ts
declare function log(message: string): void;
declare var MyGlobalVar: number;

使用声明文件

  • 安装第三方类型定义:许多流行的 JavaScript 库已经有对应的.d.ts 文件,可通过 @types 在 npm 上安装。例如,npm install @types/lodash 会安装 lodash 库的类型定义。
  • 手动创建或引用:对于没有现成类型定义的库,你可以自己创建声明文件,并在项目中通过 /// 引用,或者使用 import 语句直接导入。

注意事项

  • 不包含实现:声明文件仅提供类型信息,不包含任何实际的实现代码。
  • 兼容性:确保声明文件与库的实际实现保持一致,以避免类型错误。
  • 类型覆盖:如果库本身提供了类型定义,但你需要对其进行扩展或覆盖,可以创建一个新的声明文件来补充或修改原有的类型定义。

通过使用声明文件,开发者可以在 TypeScript 项目中无缝集成和利用大量的 JavaScript 库,同时保持代码的类型安全性和开发效率。

Released under the MIT License.