module-augmentation

📁 marius-townhouse/effective-typescript-skills 📅 10 days ago
1
总安装量
1
周安装量
#48825
全站排名
安装命令
npx skills add https://github.com/marius-townhouse/effective-typescript-skills --skill module-augmentation

Agent 安装分布

mcpjam 1
openhands 1
replit 1
windsurf 1
zencoder 1

Skill 文档

Use Module Augmentation to Improve Types

Overview

Module augmentation allows you to add declarations to existing modules, including third-party libraries. This is useful when a library’s types are incomplete or when you’re extending a library with plugins. Use declare module to add properties, methods, or types to existing modules.

When to Use This Skill

  • Extending third-party types
  • Adding properties to existing interfaces
  • Plugins that extend core types
  • Declaration merging needed
  • Augmenting global types

The Iron Rule

Use module augmentation to add to existing types. Declare the same module name and add your declarations.

Example

// 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

Reference

  • Effective TypeScript, 2nd Edition by Dan Vanderkam
  • Item 71: Use Module Augmentation to Improve Types