typescript - Kuinka tallentaa ja hakea objekti ilman tyypin tuhoamista localStoragesta?


Työskentelen AngularJS-projektin parissa TypeScriptin kanssa.

Henkilö on Person-luokan objekti. Minun täytyy tallentaa person-objekti localStorageiin ja hakea se sen tyypin kanssa.

Vastaus #1

window.localStorage voi tallentaa vain merkkijonoja. Voit käyttää JSON:ia objektisi sarjoittamiseen ja sen palauttamiseen.

class Person {

    constructor(public name:string) {

    }
}

let person = new Person('Peter');
localStorage.setItem('person', JSON.stringify(person));
let personFromStorage = JSON.parse(localStorage.getItem('person')) as Person;

console.log({
    person: person,
    personFromStorage: personFromStorage
});

Vastaus #2

Vaikka Martinin vastaus toimii metodeettomille luokille, metodeja sisältäville luokille voit kokeilla tätä:

let personFromStorage = JSON.parse(localStorage.getItem('person')) as Person;

let person = new Person('');
Object.assign(person , personFromStorage);

Aiheeseen liittyviä artikkeleita