声明文件与 @types
约 231 字小于 1 分钟
布欧-Lewyon
2026-05-16
首页 › TypeScript › 模块与声明文件 › 声明文件与 @types
.d.ts 声明文件
为 JS 库提供类型信息,不生成 JS 代码。
// globals.d.ts
declare const APP_VERSION: string;
declare function log(message: string): void;
declare namespace MyLib {
function init(config: Record<string, any>): void;
const VERSION: string;
}模块声明
// 为无类型的 npm 包声明
declare module 'old-package' {
export function doSomething(): void;
export const version: string;
}
// 声明通配符模块
declare module '*.vue' {
import type { DefineComponent } from 'vue';
const component: DefineComponent<{}, {}, any>;
export default component;
}
declare module '*.module.css' {
const classes: Record<string, string>;
export default classes;
}@types 包
// @types/lodash 为 lodash 提供类型
npm install @types/lodash --save-dev
// 类型增强——扩展已有类型
// augment.d.ts
import 'vue-router';
declare module 'vue-router' {
interface RouteMeta {
requiresAuth?: boolean;
title?: string;
}
}小结
| 文件 | 用途 |
|---|---|
.d.ts | 为 JS 提供类型声明 |
declare module 'x' | 为 npm 包声明类型 |
@types/xxx | DefinitelyTyped 社区类型 |
| 模块增强 | 扩展已有模块的类型 |
