使用Typescript编译器服务将运行时对象与预期接口进行比较

时间:2017-03-24 22:16:08

标签: typescript

在工作中,我们刚开始将项目转换为使用strictNullCheck编译器设置。这些很棒,但它只是一个编译时间检查,不应该被隐含地依赖。

例如,给定从服务接收的对象的以下接口:

IContact{
    id: string;
    name: string;
    email: string;
    phoneNumber: string;
}

这表明这些属性都不能为null或未定义。但是很可能你没有电话号码或电子邮件就可以联系,所以尽管这个界面建议你应该检查未定义的值。

我想知道是否有一种方法可以在运行时检查收到的对象是否与我们在编译时定义的接口匹配。 我想到了Typescript编译器API。如果我们在运行时仍然有d.ts个描述接口的文件,我们可以使用编译器服务来获取接口的描述,然后编写一个简单的库,将对象与此描述进行比较。

或者我们可以在编译时输出一些json以及我们需要的有关接口的信息,然后我们将在编译时使用它。

我查看过有关此服务的一些文档,但找不到很多。 有没有人有任何容易遵循这个入门指南?即使是完整的API列表也会很好,而且我找不到。 有人做过这样的事吗?

由于

0 个答案:

没有答案