mcpField
M
module-augmentation

module-augmentation

github.com/marius-townhouse开发643 次安装38 周前更新
代码仓库

关于 module-augmentation

这项 TypeScript 技能介绍如何通过模块增强扩展现有模块声明,适用于补充不完整的库类型,以及为插件或全局类型添加声明。

主要功能

  1. 01扩展第三方模块类型
  2. 02为接口添加属性和方法
  3. 03支持插件类型扩展
  4. 04增强全局声明
  5. 05使用 declare module 合并声明

适用场景

  1. 01补充不完整的库类型
  2. 02为库插件添加类型
  3. 03扩展现有接口
  4. 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