Module augmentation extends existing types without modifying source code. Here's how to use it.
Basic Module Augmentation#
Global Augmentation#
Declaration Merging#
Extending Third-Party Libraries#
Environment Variables#
Extending Built-in Types#
Library Type Definitions#
Path Aliases#
Testing Augmentation#
Best Practices#
Organization:
✓ Put declarations in types/ directory
✓ Name files descriptively (express.d.ts)
✓ Include in tsconfig.json
✓ Export {} to make modules
Safety:
✓ Don't override existing types carelessly
✓ Use optional properties when uncertain
✓ Document augmentations
✓ Keep augmentations minimal
Patterns:
✓ Extend Request/Response for auth
✓ Type environment variables
✓ Augment testing matchers
✓ Add global utilities sparingly
Conclusion#
Module augmentation extends existing types without modifying source code. Use it for adding properties to Express requests, typing environment variables, extending third-party libraries, and creating global utilities. Keep augmentations organized and documented for maintainability.