有沒有一種將對象映射到其他對象的好方法?圖書館建議也歡迎。乾淨的方式來映射對象到其他對象?
例如,說我有這些類:
export class Draft {
id: number;
name: string;
summary: string;
}
export class Book {
id: number;
name: string;
info: Info;
}
export class Info {
value: string;
}
傳統上,映射來自Draft
到Book
領域我不得不每場人工手動操作:
export class Book {
[...]
fromDraft(Draft draft) {
this.id = draft.id;
this.name = draft.name;
this.info = new Info();
this.info.value = draft.summary;
}
}
有映射以相同方式命名的對象字段的更簡單方法?例如Draft
和Book
的id
和name
字段,同時也能夠定義自定義映射,如從draft.summary
到book.info.value
。
請注意,這遠離我的實際使用情況。這裏手動分配並不難,但對於具有許多類似命名字段的對象來說,這相當麻煩。
謝謝!
真的不確定你的問題是什麼意思,但是你能不能簡單地將'Book'和'Draft'抽象成共享公共字段的更一般的父類,並且從那個父類中擴展?或者,您可以使用[裝飾器](https://tc39.github.io/proposal-decorators/)。 – d4nyll
這可能是一個選項,謝謝! – mintychai