デシリアライズしたプロパティからオブジェクトをつくりたい
サーバーとJSONを用いて通信するWebアプリケーションをTypescriptで書いています.JSONにシリアライズ/デシリアライズするとき,JSONにメソッドが含まれないので,デシリアライズしたデータを使ってオブジェクトを作ろうと考えたのですが,いい方法が分かりません.
今は次のようなコードを書いています.
class Pen{
constructor(public color: String,public size:number) { }
draw(): void {
//do something
}
}
var json = JSON.stringify(new Pen("rgb(0,0,0)",10));
var pen_data = <Pen> JSON.parse(json);
//pen_data.draw(); //TypeError: pen_data.draw is not a function
//pen_dataからPenのオブジェクトを作りたい
var new_pen = new Pen(pen_data.color, pen_data.size);
ですが,このコードはPenのプロパティが増えたときに一々書き直す必要がありますし,他のクラスでも同じことがしたくなったら同じようなコードを書かなければいけません.
このコードをジェネリックに書くにはどうすればよいでしょうか.