首页 > 解决方案 > 转到 Typescript 源定义而不是 Visual Studio Code 中的编译定义

问题描述

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

当我右键单击导入的对象并选择“转到定义”或单击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

标签: javascripttypescriptvisual-studio-codevscode-settingsmonorepo

解决方案


TypeScript 2.9 引入了一个名为declarationMap的编译器选项。根据发行说明:

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

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

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


推荐阅读