假设我有一些 C# DTO,我想使用 T4 模板和名为TypeLite的简洁小库将它们转换为 TypeScript 接口
在客户端,我有一些具体的 TypeScript 类(继承自 Backbone.Model,但这并不重要),它们代表在服务器端定义的相同 DTO。
接口的预期目标是充当数据合约并确保客户端和服务器 DTO 保持同步。
但是,这是有问题的,因为 TypeScript 不支持除instanceof
. 实例的问题是当我从服务器获取我的 DTO 时,它们是纯 JSON 对象,而不是我的模型的实例。我需要对从服务器作为 JSON 对象传入的这些 DTO 执行运行时类型检查。
我知道我可以做这样的事情:
collection.fetch({...}).done((baseModels) => {
baseModels.forEach((baseModel) => {
if(baseModel&& baseModel.SomeProperty && baseModel.SomeOtherProperty){
//JSON model has been "type-checked"
}
});
});
但是,这有明显的问题,因为现在如果我更改或添加属性,我需要在三个地方进行更新。
目前我发现的唯一一件事就是这个,但它没有记录,没有维护,并且使用我零经验的节点,所以我会为自己省去挫折感。有没有人知道类似在 TypeScript 中执行运行时类型检查或其他方式来完成我所追求的事情?
如果将其内置到 TypeLite 中以生成接口以及用于在运行时进行类型检查的 JSON 模式,那就太好了。因为这个项目是开源的,所以应该有人真的继续扩展它。如果我自己做的话,我至少需要一些指示(因此是问题)。
有关我的特定问题的更多详细信息(不是必需的,但如果需要额外的上下文)