Saltar al contenido

Angular2 y TypeScript: error TS2322: el tipo ‘Respuesta’ no se puede asignar al tipo ‘UserStatus’

Solución:

En mi opinión, no tiene sentido poner tipo en algo que proviene de la respuesta http … Los tipos solo existen en tiempo de compilación, no en tiempo de ejecución …

En lugar de:

this.http.get('/restservice/userstatus', {headers: headers})
        .subscribe(
        (data: Response) => {
            data = JSON.parse(data['_body']);
            this.userStatus = data;
        },
        err => console.log(err), // error
        () => console.log('getUserStatus Complete') // complete
    );

Utilizar esta:

this.http.get('/restservice/userstatus', {headers: headers})
.map((data: any) => data.json())
.subscribe(
        (data: any) => {
            this.userStatus = data;
        },
        err => console.log(err), // error
        () => console.log('getUserStatus Complete') // complete
    );

Aquí declaras data como tipo Response

(data: Response) => { // <==
     data = JSON.parse(data['_body']);

y aquí asignas desde una variable de tipo Response a una variable de tipo UserStatus

      this.userStatus = data; 

de ahí el error.

Para evitar eso solo hazlo

this.userStatus = JSON.parse(data['_body']);
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *