给定这样的文件结构:
├── main.js
└── util
└── stuff.js
还有一些内容是这样的:
// stuff.js
export function add(a, b) {
return a + b;
}
// main.js
import * as maths from './util/stuff.js'
maths.add(1, 2)
当我尝试对.add()
main.js 中的调用使用 Go To Definition 时,我能够看到函数签名以及 JSDoc 中用于代码完成和类型检查的任何类型。但是,当我尝试对其进行“转到定义”时,我会永远在窗口顶部看到加载动画。默认导出似乎没有这个问题。
我想我会看看这是否也发生在实际的 TypeScript 项目中,但是将文件重命名为 .ts 会使 Go To Definition 按预期工作。尽管已经知道 JSDoc,但语言服务器是否存在阻止它在 .js 文件时工作的东西?作为参考,这是我现在拥有的 jsconfig.json:
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"baseUrl": ".",
"paths": {
"@base/*": ["base/*"],
"@test/*": ["test/*"]
},
"checkJs": true,
"jsx": "preserve"
},
"exclude": ["node_modules", "**/node_modules"]
}
我已经尝试将module
选项切换到es2015
并且esnext
只是为了确保它不是导致问题的选项。