我尝试创建一个查看文件夹中的一堆* .ts文件的进程,并确定哪些文件包含实现特定接口的类。虽然我希望能够在一个文件中包含多个类,但如果我只能做一个,我就没事了。
目前,我只是加载文件,调用构造函数然后检查是否存在一些属性,但是其中一些文件可能包含抛出异常的枚举。
我知道接口没有等效的运行时因此我无法对它们进行类型检查,但还有另一种方法可以检查文件中的内容是否为类/枚举?
编辑:场景是我有一个定义Express.js路由的接口。然后我有一个类来查看文件夹中的所有文件并将加载每个文件。对于每个文件,我想看到"如果它是IRouteDefinition类型,则动态加载其路由&处理程序"
答案 0 :(得分:2)
我知道接口没有等效的运行时因此我无法对它们进行类型检查,但还有其他选项可以检查文件中的内容是否为类/枚举
这类是语言服务的用途。然而,学习曲线有点陡峭(但完全值得!)
一些编译器文档:https://basarat.gitbooks.io/typescript/content/docs/compiler/overview.html
IDE只是为了让您更轻松地使用lang服务:http://alm.tools/例如检查文档视图https://basarat.gitbooks.io/alm/content/features/documentation-view.html这真的花了我一个周末来写。
答案 1 :(得分:1)
正如我的一条评论所述,您可以使用装饰器来执行此操作。 TypeScript文档向您介绍了如何创建自定义装饰器:https://www.typescriptlang.org/docs/handbook/decorators.html
以下是一个让您入门的示例实现:http://jsbin.com/voyemu/3/edit?js,console