angular - El elemento tiene implícitamente un tipo 'any' porque la expresión de tipo... al usar una función que requiere el tipo string
Estoy haciendo una aplicación Angular con backend en Express. El backend me da una respuesta así
console.log(res) -->
{
"ok": true,
"msg": "Login ok",
"auth": "xxxxxxxxxxxx"
}
Ahora que tengo mi respuesta, estoy intentando guardarla en un localStorage
localStorage.setItem('auth', res['auth']); //also tried res.get('auth');
Sin embargo, setItem recibe una cadena como primer elemento, y una cadena como segundo elemento y sigo recibiendo el siguiente error:
El elemento tiene implícitamente un tipo 'any' porque la expresión de tipo "auth" no se puede usar para indexar el tipo "Object".
Respuesta #1
Podrías crear una interfaz y establecer tu tipo de respuesta del backend a ella de esta manera:
export interface BackEndResponse{
ok: boolean;
message: string;
auth: string;
}
No sé cómo estás consultando tu backend, pero aquí hay un ejemplo suscribiéndose al método que hace la solicitud y devuelve el objeto como un observable,
setLocalStorage(): void {
this.yourBackEndService.getBackEndInfo().subscribe((backEndResponse) => {
localStorage.setItem('auth', backEndResponse.auth);
// ...
});
}
