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/.