JavaScript和TypeScript的命名导出的“转到定义”工作方式不同吗?

问题描述

给出这样的文件结构:

├── 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)

当我尝试对main.js中的.add()进行调用时使用“转到定义”时,我能够看到函数签名以及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选项切换为es2015esnext,只是为了确保不是该选项会引起问题。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)