答案 0 :(得分:10)
Tern中有一个这样的工具。请参阅http://ternjs.net/doc/manual.html#utils上的condense
。它在您的文件上运行Tern并尝试输出它找到的类型。它远没有完美,但对于简单的程序,它运作良好。对于具有复杂结构或接口的文件,您通常必须手写定义。
答案 1 :(得分:4)
我有三种方法可以解决您的问题:
解决问题的一种方法是使用抽象语法树解析器和访问者,以便自动完成扫描代码并记录代码的任务。
这里的资源将有所帮助:
- http://ramkulkarni.com/blog/understanding-ast-created-by-mozilla-rhino-parser/ - What is JavaScript AST, how to play with it?
您通常使用解析器来检索树,然后使用访问者访问所有节点并在那里完成您的工作。
您基本上会有一棵树代表特定的库,然后您必须编写代码以您链接的def格式存储它。
另一个想法是下载文档生成器的源代码,例如: https://github.com/yui/yuidoc/
通过修改样式/输出格式,您可以以适当的json格式生成“文档”。
你可以创建一个采用标准文档格式的解析器(我敢肯定,因为Javadoc是java的一个,应该有一个用于javascript),并编写一个转换器,将相关信息和存储区分为JSON定义。 / p>