Bienvenida a annotations-design-patterns
La documentación corresponde a la versión
2.3.0. Las APIs señaladas como experimentales conservan esa condición. Consulta la migración a 2.3 para distinguir las APIs nuevas y experimentales.
Patrones de diseño como decoradores TypeScript estándar (TC39) y como funciones componibles. Los patrones GoF clásicos, inyección de dependencias, un toolkit de resiliencia completo y utilidades de método. La resiliencia y la caché también están disponibles como operadores funcionales: consulta la guía de operadores.
import { Singleton, Retry, Timeout, Fallback } from 'annotations-design-patterns';
@Singletonclass ApiClient { @Fallback<User[]>([]) @Retry({ attempts: 3, delayMs: 200, backoffFactor: 2 }) @Timeout(5000) async fetchUsers(): Promise<User[]> { /* ... */ }}¿Por qué esta librería?
Sección titulada «¿Por qué esta librería?»- Decoradores TC39 estándar — funciona con TypeScript 5+ sin
experimentalDecoratorsnireflect-metadata. Las colecciones clásicas siguen ancladas al sistema legacy. - Cero dependencias — cada patrón autocontenido, tree-shakeable.
- Tipado estricto — con tests de tipos además de los de comportamiento; cualquier
anyqueda acotado. - 15 patrones GoF + inyección de dependencias + resiliencia + utilidades de método, cubiertos en esta documentación.
Requisitos
Sección titulada «Requisitos»- TypeScript 5.0+ con target
ES2022o superior. - No actives
experimentalDecorators: esta librería usa los decoradores estándar. - Node 20+ (o cualquier bundler moderno).
Instalación
Sección titulada «Instalación»npm install annotations-design-patternsPróximos pasos
Sección titulada «Próximos pasos»Elige una guía en el menú lateral según lo que busques hacer:
- Decoradores GoF y de resiliencia — catálogo completo de patrones clásicos y resilientes.
- API funcional con
pipe,runy operadores — composición sin decoradores. - Políticas reutilizables con
definePolicy— configuración inmutable y validada. - Observabilidad: errores y eventos — estructura log de eventos sin dependencias.
- Concurrencia e invalidación —
overlap,keyedLocky caches con handles. - Store async y contexto Node — integración con Node.js.
- Experimental:
switchOverlapyhedge— APIs no estables bajo investigación.
Para una referencia detallada de tipos y firmas, consulta la Referencia de API.

