annotations-design-patterns
    Preparing search index...

    Function When

    • Guarda de estado: el método solo puede llamarse cuando la máquina está en alguno de los estados permitidos; en otro caso lanza Error y el método no se ejecuta. Colócalo como decorador MÁS EXTERNO (encima de @TransitionTo) para que la guarda se evalúe primero.

      Type Parameters

      • const Allowed extends readonly string[]

      Parameters

      Returns <This extends StateMachine<string>, Args extends unknown[], Return>(
          target: (this: This, ...args: Args) => Return,
          context: ClassMethodDecoratorContext<
              This,
              (this: This, ...args: Args) => Return,
          > & ValidStates<Allowed[number], This["state"]>,
      ) => (this: This, ...args: Args) => Return

      class Doc extends StateMachine<'draft' | 'review'> {
      @When('draft')
      @TransitionTo('review')
      submit(): void { ... }
      }