4

我想使用 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 文件。我可以定义某种编译器钩子吗?是否有示例甚至现成的解决方案(我可以想象还有其他有类似要求的人)?


4

0 回答 0