Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

385
Visualizações
La propiedad 'subscribe' no existe en el tipo 'void | Observable<Usuario>'. ts(2339)
login() { this.auth.login(this.userName, this.password).subscribe((_: any) => { this.router.navigateByUrl('app', {replaceUrl: true}); }); }

No sé por qué recibo este error, probé algunas cosas pero nada funciona.

Este es mi método auth.login. No sé dónde podría estar el error. Soy bastante nuevo en Angular:

 login(username: string, password: string) { let userObject: User; if (username === 'user' && password === 'user1234') { userObject = { name: 'Max Mustermann', userRole: 'USER', }; } else if (username === 'admin' && password === 'admin1234') { userObject = { name: 'Erika Mustermann', userRole: 'ADMIN', }; }else{ return this.assertNever(); } return of(userObject).pipe( tap(user => { Storage.set({ key: TOKEN_KEY, value: JSON.stringify(user) }); this.currentUser.next(user); }) ); }

Al eliminar el método assertNever(), aparece este error en el último return :

La variable 'userObject' se usa antes de ser asignada. ts(2454)

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Agregar algunos tipos de devolución a sus funciones lo ayudará en el futuro. Por lo que puedo ver, su función this.assertNever(); siempre arroja pero se declara (o se infiere) para volver nulo.

Cambie su declaración para volver never y TS reconocerá que esta función no volverá.

void = devuelve, pero no devuelve un valor
nunca = no regresará / el valor de retorno no será observable

about 4 years ago · Juan Pablo Isaza Relatório

0

Obtiene ese error porque su método de 'inicio de sesión' debe tener una ruta que no tiene un "retorno" .

De hecho, los otros caminos deberían devolver un "Observable", lo que suena bien.

EDITAR:

Ahora que puedo ver su código, parece que el error se ubica en esta línea:

 return this.assertNever();

¿Podría el método "assertNever ()" devolver "vacío"/nulo/nada?

De todos modos, para evitar el error, ¿podría falsificar un usuario ficticio y devolverlo cambiando esta línea:

 else { \\return this.assertNever(); userObject = { name: 'Fake', userRole: 'NOLOGGED', }; }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda