我正在尝试使用Tern对一些 Javascript 代码执行类型推断。但是,类型推断似乎没有在代码旁边使用 JSDoc 注释。
我使用代码/** @type {Foo} */ let x;
作为问题的示例。在Tern 网站的演示页面(使用 CodeMirror)上,编辑器能够推断出类型x
是Foo
.
然而,当通过节点在本地运行时,我得到了这个:{ type: '?', exprName: 'x' }
.
这是一个复制问题的片段:
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 注释时,它似乎不适用于我初始化和调用它的方式。
我什至将doc_comment
插件设置为strong
,这意味着 JSDoc 类型优于通常推断的类型,但无济于事。
任何想法如何让它发挥作用?