annotations-design-patterns
    Preparing search index...

    Function Adapt

    • Patrón Adapter: expone métodos existentes de la clase bajo nombres nuevos (alias), para cumplir la interfaz que espera otro código sin reescribir la clase. El mapeo es { aliasNuevo: 'metodoExistente' }.

      Los alias existen en runtime; para que el sistema de tipos los vea, castea la instancia con el tipo Adapted<Clase, Mapeo> (los decoradores TC39 no pueden ampliar el tipo de la clase).

      Parameters

      • aliases: Record<string, string>

      Returns <T extends new (...args: any[]) => object>(
          target: T,
          context: ClassDecoratorContext<T>,
      ) => T

      @Adapt({ send: 'postMessage' })
      class LegacySocket {
      postMessage(data: string): void { ... }
      }
      const s = new LegacySocket() as Adapted<LegacySocket, { send: 'postMessage' }>;
      s.send('hola');