我有一个遗留数据库,我想通过全新的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语句。 –