4

Typescript デコレータを使用して、Angular プロジェクトのバックエンド サービス/モデル パラメータからフロントエンド クラス パラメータへのマッピングを定義したいと考えています。バックエンドを変更できず、フロントエンド コードに名前を使用したくありません。

私の typescript モデル定義の例:

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