2017-06-08 40 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,但认为这可能是 有帮助。