annotations-design-patterns
    Preparing search index...

    Function Cloneable

    • Patrón Prototype: añade un método clone() que crea una copia SUPERFICIAL de la instancia (mismo prototipo, mismas propiedades propias; los objetos anidados se comparten).

      clone() existe en runtime; para que el sistema de tipos lo vea, castea con WithClone<Clase> (los decoradores TC39 no pueden ampliar el tipo de la clase, igual que ocurre con @Adapt).

      Type Parameters

      • T extends new (...args: any[]) => object

      Parameters

      • target: T
      • context: ClassDecoratorContext<T>

      Returns T

      @Cloneable
      class Document { ... }
      const copy = (doc as WithClone<Document>).clone();