¿Cómo almacenar un objeto (de un tipo de clase) en el almacenamiento del navegador y recuperarlo?

Quiero tener una instancia de clase de prueba de recarga de página en mi aplicación Angular 2.

En el archivo .ts de mi componente tengo clases:

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()
}

Yo se que ellocalStorage Lo ES6 puede almacenar cadenas. ¿Tengo que escribir mi propia deserialización de objetos de clase complejos? Como (creo) sugerido aquí:Respuesta http del mapa angular 2 a la instancia de clase

Respuestas a la pregunta(3)

Su respuesta a la pregunta