我想使用 Typescript 装饰器来定义我的后端服务/模型参数到我的 Angular 项目中的前端类参数的映射。我无法更改后端,也不想为我的前端代码使用名称。
我的打字稿模型定义的示例:
export class Person {
@Param('NAME1')
firstName: string;
@Param('NAME2')
lastName: string;
}
从后端接收到的数据如下所示:
{
"NAME1": "John",
"NAME2": "Doe"
}
现在我想编写一个编译器钩子来分析所有这些@Param
装饰器并生成一个带有映射的 JSON 文件:
{
"Person": {
"NAME1": "firstName",
"NAME2": "lastName"
}
}
稍后,我的服务将使用此映射文件来解析后端响应。
在后端“世界”(Java、PHP 等)中,这是注解的一种非常典型的用法,即像上面一样使用注解来定义数据库表/Web 服务和实体类之间的映射。
如何使用 Angular 实现这一目标?我的目标是在编译器调用时自动生成映射 JSON 文件。我可以定义某种编译器钩子吗?是否有示例甚至现成的解决方案(我可以想象还有其他有类似要求的人)?