转到Typescript源定义,而不是Visual Studio代码中的已编译定义

flo*_*olu 5 javascript typescript visual-studio-code monorepo vscode-settings

我正在使用Visual Studio Code开发一个打字稿项目,其中包括多个结构如下的npm软件包:

  • 源代码: /src/index.ts
  • 编译代码: /dist/...

当我右键单击导入的对象并选择“转到定义”时,或者F12在按住的同时单击或单击该对象CTRL,Visual Studio Code将在其中打开相应的.d.ts文件。/dist

vscode去定义 vscode打开.d.ts

但是,我想VSCode在中打开相应的.ts文件/src

.ts文件

是否可以更改此行为,因为手动搜索源文件确实很烦人。

我创建了git repo,以便您可以自己尝试:https : //github.com/flolude/stackoverflow-typescript-go-to-definition

  • 您只需要运行yarn bootstrap即可复制问题。

Bra*_*olt 11

TypeScript 2.9 引入了一个名为declarationMap的 compilerOption 。根据发行说明:

在 --declaration 旁边启用 --declarationMap 会导致编译器在输出 .d.ts 文件旁边发出 .d.ts.map 文件。语言服务现在还可以理解这些映射文件,并在可用时使用它们将基于声明文件的定义位置映射到其原始源。

换句话说,在使用 --declarationMap 生成的 .d.ts 文件中的声明上点击 go-to-definition 会将您带到定义该声明的源文件 (.ts) 位置,而不是 .d。 ts。

我在您的示例存储库上提交了 PR以启用此设置。