[英]Angular and TypeScript: instantiating an instance of a class from a JSON object
我有一個接口來表示來自Web API的響應:
interface Person {
dateofbirth: string;
firstname: string;
lastname: string;
}
但是我不想處理日期時間的字符串表示形式。 相反,我想處理一個MomentJS
對象。 因此,我為具有MomentJS
屬性的視圖模型創建了一個類。 構造它時,我將字符串轉換為MomentJS
對象:
class PersonViewModel {
dateofbirth: Moment.moment;
firstname: string;
lastname: string;
constructor(dateofbirth: string, firstname: string, lastname: string) {
this.dateofbirth = moment.utc(dateofbirth);
this.firstname = firstname;
this.lastname = lastname;
}
}
但是,如果來自Web API的響應包含10個以上的字段(通常是這種情況),我發現自己要做很多手工工作。 我嘗試使用第三方工具來簡化給定JSON對象的對象的實例,但是我不想依賴第三方工具來實現應用程序的關鍵部分。
我的問題是-是否有任何本機TypeScript功能可以簡化此過程? 還是應該采用完全不同的方法?
如您所見,矩實例不僅由new Moment
創建,而且還通過靜態矩函數創建。 其他類或對象可能會通過new SomeClass()
實例化。 因此,解決該問題的通用方法基本上是不可能的。
這也意味着要區分基本體和類/對象。 但是在Typescript中,您也可以創建聯合類型,例如string | SomeClass
string | SomeClass
。 在運行時,檢查給定每個參數的特定類型將需要進行大量工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.