Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

376
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!