比方说,我有一些C#DTO的,我想将它们转换使用T4模板和整洁的小库调用打字稿接口TypeLite
在客户端,我有代表在服务器端定义相同的DTO一些具体的打字稿类(即从Backbone.Model继承,但是这并不重要)。
接口的预期目标是充当数据合同,并保证客户端和服务器的DTO保持同步。
然而,这是有问题的,因为打字稿支持比其他没有运行时类型检查设施instanceof
。 与实例的问题是,当我从服务器获取我的DTO它们都是普通的JSON对象,而不是我的模型的实例。 我需要在这些DTO的从服务器作为JSON对象进来执行运行时类型检查。
我知道我可以做这样的事情:
collection.fetch({...}).done((baseModels) => {
baseModels.forEach((baseModel) => {
if(baseModel&& baseModel.SomeProperty && baseModel.SomeOtherProperty){
//JSON model has been "type-checked"
}
});
});
然而,这个明显的问题,因为现在我需要在三个地方进行更新,如果我更改或添加的属性。
目前我发现的唯一的事情就是这样 ,但它没有证件,不能维持,并使用它我有,所以我会拯救自己的无奈零经验节点。 有谁知道任何东西类似于打字稿或其他方式执行运行时类型检查来完成我后?
如果这被内置到TypeLite生成接口以及类型在运行时检查JSON模式这将是巨大的。 作为这个项目是开源的人真的应该继续并扩展它。 我需要在至少一些指针,如果我会做我自己(这样的问题)。
我的具体问题的更多细节在这里 (不是必要的,但如果需要额外的上下文)