1

新しい API で公開したい古いデータベースがあります。

モデルのフィールド名をレガシー データベースから新しいモデル クラスにマップする必要があります。

エラーが発生しやすい文字列マッピングの辞書だけを使用するのではなく、タイプ セーフな方法でこれを行いたいと考えています。

// The new model.
class Patient {
  firstName: string
  lastName: string
  dateOfBirth: Date
}

var p: Patient;

legacyToNewModelMappings =
  "First Name": p.firstName
  "Family Name": p.familyName
  "DOB": p.dateOfBirth

新しいモデルのフィールドを変更すると、リファクタリングが簡単になり、問題が発生した場合に IDE でアラートが表示されるため、これは素晴らしいことです。

ただし、2 つのモデル間を行き来できるようにする必要があります。ただし、参照を使用すると、レガシー DB から新しい DB にマップできなくなります。

Node.js で TypeScript を使用しています。

私が見るべき他のアプローチはありますか?

4

1 に答える 1

1

私はあなたがここで達成しようとしていることを理解しようとしているので、間違っている場合は修正してください.

1 つのモデルでゲッターとセッターを使用して、両方のデータベースのフィールド名のプロパティを一致させることはできませんか?

class Patient {
    public firstName: string;
    public lastName: string;
    public dateOfBirth: Date;

    get "First Name" (): string {
        return this.firstName;
    }
    get "Family Name" (): string {
        return this.familyName;
    }
    get "DOB" (): Date {
        return this.dateOfBirth;
    }

    set "First Name" (value: string) {
        this.firstName = value;
    }
    set "Family Name" (value: string) {
        this.familyName = value;
    }
    set "DOB" (value: Date) {
        this.dateOfBirth = value;
    }
}
于 2013-10-09T15:51:47.293 に答える