检查TypeScript文件中的对象是否实现特定的接口

时间:2016-08-18 20:47:51

标签: typescript

我尝试创建一个查看文件夹中的一堆* .ts文件的进程,并确定哪些文件包含实现特定接口的类。虽然我希望能够在一个文件中包含多个类,但如果我只能做一个,我就没事了。

目前,我只是加载文件,调用构造函数然后检查是否存在一些属性,但是其中一些文件可能包含抛出异常的枚举。

我知道接口没有等效的运行时因此我无法对它们进行类型检查,但还有另一种方法可以检查文件中的内容是否为类/枚举?

编辑:场景是我有一个定义Express.js路由的接口。然后我有一个类来查看文件夹中的所有文件并将加载每个文件。对于每个文件,我想看到"如果它是IRouteDefinition类型,则动态加载其路由&处理程序"

2 个答案:

答案 0 :(得分:2)

  

我知道接口没有等效的运行时因此我无法对它们进行类型检查,但还有其他选项可以检查文件中的内容是否为类/枚举

这类是语言服务的用途。然而,学习曲线有点陡峭(但完全值得!)

文档

答案 1 :(得分:1)

正如我的一条评论所述,您可以使用装饰器来执行此操作。 TypeScript文档向您介绍了如何创建自定义装饰器:https://www.typescriptlang.org/docs/handbook/decorators.html

以下是一个让您入门的示例实现:http://jsbin.com/voyemu/3/edit?js,console