angular - Elementet har implicit typen 'any' eftersom uttrycket av typ... används när man använder en funktion som kräver typ string


Jag gör en Angular-applikation med Express-backend. Backend ger mig ett svar som detta

console.log(res) -->

{
    "ok": true,
    "msg": "Login ok",
    "auth": "xxxxxxxxxxxx"
}

Nu när jag har mitt svar försöker jag spara det i localStorage

localStorage.setItem('auth', res['auth']); //also tried res.get('auth');

Men setItem tar emot en sträng som första element, och sträng som andra element och jag får hela tiden följande fel:

Element har implicit typen 'any' eftersom uttryck av typen "auth" inte kan användas för att indexera typen "Object".

Svar #1

Du kan skapa ett gränssnitt och ställa in din backend-svarstyp till det på följande sätt :

export interface BackEndResponse{
    ok: boolean;
    message: string;
    auth: string;
}

Jag vet inte hur du frågar din backend men här är ett exempel på att prenumerera på metoden som gör förfrågan och returnerar objektet som en observerbar.

setLocalStorage(): void {
    this.yourBackEndService.getBackEndInfo().subscribe((backEndResponse) => {
      localStorage.setItem('auth', backEndResponse.auth);
      // ...
    });
  }