一、介紹:
? 首先介紹下自己,本人iOS開發(fā)。年中的時候,由于公司前端缺失,就去湊個數(shù)幫個忙。當看到前端代碼所有接口返回的數(shù)據(jù)直接拿來用,沒有一個模型model來接收這些數(shù)據(jù),想想不怎么合理,于是踏上了需要數(shù)據(jù)模型化的重構道路中(PS:JS只有對象沒有類)。
二、過程:
? 在這個過程中,解讀了對于JS原型的理解 (PS:你所不知道的JS?強烈推薦),最后遇到了TypeScript(PS:我就不吹比了,真的非常好用官網(wǎng))。
三、結論:
利用TypeScript 創(chuàng)建所謂的基類來實現(xiàn)model化。
核心:基類文件 FCObject.ts
FCObject截圖:

model定義截圖:

使用截圖:

四、解讀:
核心就是通過繼承FCObject獲取modelAddProperty 來遍歷json,并且通過modelCustomPropertyMapper 方法來重定義參數(shù)名,以及通過modelContainerPropertyGenericClass定義非基礎數(shù)據(jù)類型 以及泛型中非技術數(shù)據(jù)類型。
五、升級:
? 相信很多前端兄弟看到這些,都會吐槽增加了好多工作量,還需要定義每個參數(shù),好煩,還要小心翼翼定義基礎類型(PS:我也很煩躁,寫iOS的時候我們都有工具將json轉化對應的模型 .h .m文件)。
? 為了解決這個煩惱,就花了點時間做了輔助工具(JSON轉TS模型文件),只適合Mac使用。?
? 工具截圖:



最終鳴謝:
1.此工具核心內容來自ESJsonFormat
2.此工具開發(fā)OC swift 功能大佬ESJsonFormatForMac
本人工具地址:
1.此工具以及FCObject Demo地址:FCObject
2.ESJsonFormatForMac的TS版本工具源碼:ESJsonFormatForMac-TS
求點贊求關注求指點 謝謝!