SuperAPI AI 工具集

module-augmentation

通用与其它

查看项目

更新于 10-16 00:06

技能介绍

用途:模块增强(Module Augmentation)允许向已有模块(包括第三方库)添加声明,适用于库类型不完整、或通过插件扩展库的场景。使用 declare module 为现有模块添加属性、方法或类型。

主要能力:扩展第三方类型;为现有接口添加属性;让插件扩展核心类型;进行声明合并;增强全局类型。

使用方式:声明与目标相同的模块名,再添加自己的声明。示例:在 types/vue.d.ts 中写 declare module 'vue' { export interface ComponentCustomProperties { $myProperty: string; $myMethod(): void; } },之后 Vue 组件即可类型安全地使用 this.$myProperty。增强全局类型时使用 declare global { interface Window { myLib: MyLibrary; } },之后 window.myLib 即具备类型。

适用场景:第三方库类型缺失或需要补充时;插件需要向核心类型注入新成员时;需要合并声明或扩展全局对象时。

限制:资料未提供更多限制说明。参考来源为 Dan Vanderkam《Effective TypeScript》第 2 版第 71 条:Use Module Augmentation to Improve Types。