我有一個遺留數據庫,我想通過全新的API公開。使用Typescript映射數據庫模式
我需要將模型的字段名稱從遺留數據庫映射到我的新模型類。
我想以類型安全的方式做到這一點,而不是僅僅使用容易出錯的字符串映射字典。
// 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得到一個警告,如果有一個問題。
但是我需要能夠在兩個模型之間來回映射。使用引用雖然意味着我不能從遺留數據庫映射到新數據庫。
我在Node.js中使用TypeScript。
我應該看的任何其他方法?
您是指從新數據庫返回到舊數據庫?這是一個JavaScript問題,與TypeScript無關。您的映射需要雙向,但JavaScript對象散列只有單向。因此,您必須在兩個方向上構建兩個映射詞典,或者對某個方向使用屬性搜索(可能是最少使用的一個)。一些JavaScript庫包含一個「反向對象」函數,它構建一個新對象,用屬性值切換屬性值 - 在這種情況下,您將創建一個映射,然後「反向」以獲取其他方向。 –
另外,您的legacyToNewModelMappings不起作用。這將使用構建映射對象時作爲屬性當前值的值構建映射。如果您不想在TypeScript類上使用屬性名稱索引,通常會生成兩個函數setLegacyToNewModel()和getLegacyFromNewModel(),它們在屬性名稱上包含switch語句。 –