Вы можете просто создать свой собственный многоразовый декоратор:
const ApiRoleQuery = ApiImplicitQuery({
name: 'role',
enum: ['Admin', 'Moderator', 'User'],
});
и затем используйте его в вашем контроллере:
@ApiRoleQuery
@Get()
async filterByRole(@Query('role') role) {
// ...
}