Angular / Typescript在接口中从蛇格转换为骆驼格

dor*_*ron 5 typescript angular

我们目前正在从AngularJS大规模升级到Angular。我们遇到一个问题,我找不到最佳解决方案来解决它。

根据Angular / Typescript代码标准,我们应该使用camelCase定义所有变量,属性名称和接口。

问题是来自后端的所有数据都与snake_case一起使用。

因此,在每个请求之后,为了创建相应的接口,我们需要将键转换为camelCase,然后在传递数据时,我们需要使用snake_case将其返回。

我们正在使用lodash这样做,但是有没有更好的方法呢?有没有一种方法可以使用Typescript本机实现来转换这些东西?

小智 -2

不确定这是否有帮助。我做了一些实验,模拟了我正在使用的旧数据库中字段的命名约定,并发现了以下内容(通过示例演示):

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);
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

...映射到 Typescript 中的接口:

 interface WeatherForecast {
        datE_FORMATTED: string;
        temperaturE_C: number;
        temperaturE_F: number;
        summary: string;
    }
Run Code Online (Sandbox Code Playgroud)

当我使用这个看起来很疯狂的约定时,我得到的数据很好。

注意:尚未测试 PATCH/POST,但认为这可能会有所帮助。