Function: Skip()

function Skip(): (target: Function, context: ClassMethodDecoratorContext) => void;

Defined in: src/router/decorators/base-policy.ts:235

Decorador @Skip()

Marca un método que puede explícitamente declarar que TODA LA POLÍTICA no tiene opinión sobre una navegación particular retornando true.

Esto es diferente de simplemente retornar false (que continúa evaluando otros métodos de la misma política). Cuando

Returns

(target: Function, context: ClassMethodDecoratorContext): void;

Parameters

Parameter Type
target Function
context ClassMethodDecoratorContext

Returns

void

Skip

retorna true, se detiene la evaluación de esta política completa y se pasa a la siguiente política en la cadena.

Esto es crítico para la composición de políticas. Permite que una política declare “yo no soy responsable de esta navegación, pregúntenle a otra política”.

Example

@Skip()
onlyForAdminRoutes() {
  // Esta política solo se preocupa de rutas /admin/*
  // Para cualquier otra ruta, explícitamente nos abstenemos
  if (!this.router.currentPath.startsWith('/admin/')) {
    return true; // SKIP - no somos responsables de esto
  }
  
  // Si llegamos aquí, estamos en una ruta admin
  // Retornar false para continuar evaluando otros métodos de esta política
  return false;
}

@Allow()
adminWithPermission() {
  // Este método solo se ejecutará si onlyForAdminRoutes retornó false
  return this.user.hasPermission('admin');
}

Caso de uso común: Políticas especializadas que solo aplican a ciertas rutas. Por ejemplo, una AdminPolicy que solo se preocupa de rutas /admin/, o una ApiPolicy que solo se preocupa de rutas /api/.