Clonando um objeto TypeScript

Eu tenho uma classe de texto datilografado

export class Restaurant {

  constructor ( private id: string, private name: string ) {

  }

  public getId() : string {
    return this.id;
  }

  public setId(_id : string) {
    this.id = _id;
  }

  public getName () {
    return this.name;
  }

  public setName ( _name:string ) {
    this.name = _name;
  }

}

Eu tenho uma instância dessa classe (este é um exemplo):

restaurant:Restaurant = new Restaurant(1,"TestRest");

Em seguida, guardo esse objeto de restaurante em algum tipo de cache

cache.store( restaurant );

mais tarde, na minha inscrição, eu recupero o restaurante

var restToEdit = cache.get( "1" );
restToEdit.setName( "NewName" );

Mas, como os javascripts passam por referência nos objetos, as alterações que faço no restToEdit também são salvas no restaurante em que está o cache.

Basicamente, quero que o restaurante no cache seja uma instância totalmente diferente do restoToEdit.

Eu tentei usar o jQuery.clone e estender, mas ele não parece funcionar e acho que isso é por ser um objeto de texto datilografado. Ou isso não importa?

Todas as respostas sobre como clonar este objeto serão apreciadas

obrigado

questionAnswers(4)

yourAnswerToTheQuestion