【发布时间】:2017-09-02 01:47:14
【问题描述】:
我正在尝试使用 Tern 对一些 Javascript 代码执行类型推断。但是,类型推断似乎没有在代码旁边使用 JSDoc cmets。
我使用代码/** @type {Foo} */ let x; 作为问题的示例。在Tern website's demo page(使用CodeMirror)上,编辑器能够推断出x的类型是Foo。
然而,当通过节点在本地运行时,我得到了这个:{ type: '?', exprName: 'x' }。
这是一个复制问题的 sn-p:
const tern = require('tern');
const ternServer = new tern.Server({
plugins: {
doc_comment: {
strong: true
}
}
});
const js = `/** @type {Foo} */ let x;`;
ternServer.addFile("main", js);
ternServer.request({
query: {
type: "type",
file: "main",
start: js.length - 2,
end: js.length - 2
}
}, console.log);
否则,Tern 在类型推断方面工作得非常好。在使用 JSDoc cmets 时,它似乎不适用于我初始化和调用它的方式。
我什至将doc_comment 插件设置为strong,这意味着JSDoc 类型优于通常推断的类型,但无济于事。
任何想法如何让它工作?
【问题讨论】:
标签: javascript parsing type-inference jsdoc tern