&引用;转到“定义”;对于命名导出,JavaScript和TypeScript的工作方式不同吗?
给定如下文件结构:&引用;转到“定义”;对于命名导出,JavaScript和TypeScript的工作方式不同吗?,javascript,typescript,visual-studio-code,go-to-definition,Javascript,Typescript,Visual Studio Code,Go To Definition,给定如下文件结构: ├── main.js └── util └── stuff.js 有些内容是这样的: ├── main.js └── util └── stuff.js //stuff.js 导出功能添加(a、b){ 返回a+b; } //main.js 将*作为数学从“/util/stuff.js”导入 数学。加(1,2) 当我尝试在main.js中调用.add()时使用Go to Definition,我能够看到函数签名以及JSDoc中用于代码完成和类型检查的任何
├── main.js
└── util
└── stuff.js
有些内容是这样的:
├── main.js
└── util
└── stuff.js
//stuff.js
导出功能添加(a、b){
返回a+b;
}
//main.js
将*作为数学从“/util/stuff.js”导入
数学。加(1,2)
当我尝试在main.js中调用.add()
时使用Go to Definition,我能够看到函数签名以及JSDoc中用于代码完成和类型检查的任何类型。然而,当我尝试去定义它时,我看到加载动画永远在窗口的顶部。默认导出似乎没有这个问题
我想我应该看看在实际的TypeScript项目中是否也会发生这种情况,但将文件重命名为.ts会使Go to Definition按预期工作。当语言服务器是一个.js文件时,是否有什么东西阻止它工作,尽管它已经知道JSDoc了?以下是我现在拥有的jsconfig.json供参考:
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"baseUrl": ".",
"paths": {
"@base/*": ["base/*"],
"@test/*": ["test/*"]
},
"checkJs": true,
"jsx": "preserve"
},
"exclude": ["node_modules", "**/node_modules"]
}
我已尝试将模块
选项切换到es2015
和esnext
以确保该选项不会导致问题