2017-06-08 75 views
1

我們目前正在進行從AngularJS到Angular的大規模升級。 我們遇到了一個問題,我無法找到解決問題的最佳解決方案。Angular/Typescript從蛇殼轉換爲界面中的駱駝案例

根據Angular/Typescript代碼標準,我們應該使用camelCase定義我們所有的變量,屬性名稱和接口。

問題是來自後端的所有數據都與snake_case一起使用。

所以在每次請求之後,爲了創建相應的接口,我們需要將鍵轉換爲camelCase,然後當我們傳遞數據時,我們需要將它返回。

我們使用lodash這樣做,但有沒有更好的方法呢? 有沒有辦法使用Typescript原生實現來轉換這些東西?

+1

只是定義您的接口,因爲它們來自服務器。 – toskv

+0

您是否有任何對後端使用的序列化程序的控制權?也許它可以配置(我在使用.NET Web API時執行此操作,以控制如何將C#對象序列化爲JSON)。 –

回答

1

沒有內置的功能來做這樣的事情。

你可以自己做,也可以像你已經做過的那樣使用庫。

-1

不知道這是否有幫助。我做了一些實驗是模擬的命名約定在原有數據庫字段我一起工作,並發現了以下(通過舉例來說明):在C#

型號...

public class WeatherForecast 
     { 
      public string DATE_FORMATTED { get; set; } 
      public int TEMPERATURE_C { get; set; } 
      public string SUMMARY { get; set; } 

      public int TEMPERATURE_F 
      { 
       get 
       { 
        return 32 + (int)(this.TEMPERATURE_C/0.5556); 
       } 
      } 
     } 

...地圖以接口在手稿:

interface WeatherForecast { 
     datE_FORMATTED: string; 
     temperaturE_C: number; 
     temperaturE_F: number; 
     summary: string; 
    } 

當我使用這個瘋狂的看慣例,我得到的數據就好了。

注意:尚未測試PATCH/POST,但認爲這可能是 有幫助。