Como armazenar um objeto (de um tipo de classe) no armazenamento do navegador e recuperá-lo?

Quero ter instâncias de classe à prova de recarga de página no meu aplicativo Angular 2.

No arquivo .ts do meu componente, tenho classes:

export class AComponent implements OnInit {
  foo: Foo = new Foo();
  ngOnInit() {
    // This will always be 12, it would be nice if it would increase with each page refresh.
    this.foo.bar.baz += 1;
    console.log("baz: " + this.foo.bar.baz);
  }
}

class Bar {
  baz: number = 11;
}

class Foo {
  bar: Bar = new Bar()
}

Eu sei que olocalStorage ES6 coisa pode armazenar seqüências de caracteres. Preciso escrever minha própria desserialização de objetos de classe complexos? Como (eu acho) sugerido aqui:Resposta http do mapa angular 2 à instância da classe

questionAnswers(3)

yourAnswerToTheQuestion