关于 module-augmentation
这项 TypeScript 技能介绍如何通过模块增强扩展现有模块声明,适用于补充不完整的库类型,以及为插件或全局类型添加声明。
主要功能
- 01扩展第三方模块类型
- 02为接口添加属性和方法
- 03支持插件类型扩展
- 04增强全局声明
- 05使用 declare module 合并声明
适用场景
- 01补充不完整的库类型
- 02为库插件添加类型
- 03扩展现有接口
- 04为全局类型添加声明
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ marius-townhouse/ effective-typescript-skills --skill module-augmentation安装后在 Claude Code 中输入/module-augmentation确认已加载。
详细介绍
使用模块增强改进类型
概述
模块增强允许你向现有模块(包括第三方库)添加声明。当库的类型不完整,或你要通过插件扩展库时,这会很有用。使用 declare module 向现有模块添加属性、方法或类型。
何时使用此技能
- 扩展第三方类型
- 向现有接口添加属性
- 扩展核心类型的插件
- 需要声明合并
- 增强全局类型
铁律
使用模块增强来扩展现有类型。声明相同的模块名称,并添加你的声明。
示例
// Adding to an existing module
// types/vue.d.ts
declare module 'vue' {
export interface ComponentCustomProperties {
$myProperty: string;
$myMethod(): void;
}
}
// Now Vue components have these properties
// this.$myProperty works with type safety
// Augmenting global types
declare global {
interface Window {
myLib: MyLibrary;
}
}
// Now window.myLib is typed
参考
- Dan Vanderkam 著《Effective TypeScript》第 2 版
- 条目 71:使用模块增强改进类型
评论
支持 Markdown