annotations-design-patterns
    Preparing search index...

    Function Snapshot

    • Antes de ejecutar el método, guarda en el historial una copia superficial del estado de la instancia (patrón Memento). history.restoreLast() revierte la última mutación. Limitación: la restauración reasigna las propiedades guardadas pero no elimina propiedades añadidas después.

      Parameters

      Returns <This extends object, Args extends unknown[], Return>(
          target: (this: This, ...args: Args) => Return,
          context: ClassMethodDecoratorContext<
              This,
              (this: This, ...args: Args) => Return,
          >,
      ) => (this: This, ...args: Args) => Return

      const history = new SnapshotHistory();
      class Editor {
      @Snapshot(history)
      write(text: string): void { this.content += text; }
      }
      history.restoreLast(); // deshace el último write