【发布时间】:2023-02-06 15:05:56
【问题描述】:
每次我在 VSCode 中打开一个新项目时,它都默认使用它自己的 TypeScript 版本而不是工作区版本,有没有一种方法可以默认使用工作区版本,这样我就不必每次都更改它?
例如
我已经尝试查看设置,但似乎只能提示我不要每次都默认为我想要的行为。
【问题讨论】:
每次我在 VSCode 中打开一个新项目时,它都默认使用它自己的 TypeScript 版本而不是工作区版本,有没有一种方法可以默认使用工作区版本,这样我就不必每次都更改它?
例如
我已经尝试查看设置,但似乎只能提示我不要每次都默认为我想要的行为。
【问题讨论】:
你目前能做的最好的事情是:
"typescript.tsdk": "./node_modules/typescript/lib",
"typescript.enablePromptUseWorkspaceTsdk": true,
在撰写本文时,最新的 VS Code 版本为 1.75。
目前没有设置让工作区在没有提示的情况下使用工作区的 TypeScript SDK。
至于目前的原因,在 typescript.enablePromptUseWorkspaceTsdk 设置存在之前(尽管我认为评论的逻辑今天仍然适用),a maintainer has once commented:
我们支持在工作区设置中设置
typescript.tsdk,但出于安全原因,我们始终要求用户选择使用工作区版本的打字稿。这就是本地存储发挥作用的地方。提示基本上是在问:你信任这个工作区吗?它来自哪里。工作区版本的 TypeScript 也可以从工作区执行其他文件,因此我们无法合理地确保 VS Code 只运行受信任的文件。我们默认做安全的事情:不要从工作区加载任何东西。无论如何,切换到从工作区加载任何代码必须是选择加入的,并且必须基于用户操作。
这里最合理的解决方案是添加一个工作区设置,当用户第一次打开工作区时自动显示选择 tsdk 提示
That's how the
typescript.enablePromptUseWorkspaceTsdkcame to be。
有一个您可能感兴趣的功能请求:VSCode should default to using the TypeScript version in the current project #172732
引用自one of the maintainers' reponses to that feature-request:
我们之前已经讨论过这个问题,但出于以下几个原因决定不这样做:
TS 的工作区版本往往会过时。旧的 TS 版本有错误和性能问题,我们的捆绑版本经常修复这些问题。我们不对旧 TS 版本进行任何修复,这些旧版本的问题报告通常也没有帮助
虽然在某些情况下使用不同的 TS 版本进行编辑与编译很重要,但通常不会。
在您的笔记中:
VSCode 更新 TypeScript 版本很慢
稳定版的 VS Code 通常会在一到两周内获取最新的稳定版 Typescript。最新的 TS 通常在一天后出现在 VS Code 内部人员中。在您的情况下听起来您正在尝试使用即将推出的 TS beta 或 RC 中的功能
我认为这对于需要最新 TS 的高级用户立即切换到使用 TS 的工作区版本并不是一个很大的障碍
妥协是你已经调出的设置:
typescript.enablePromptUseWorkspaceTsdk。这使高级用户更容易切换,而不会影响不需要切换到工作区版本的绝大多数用户的体验(并且切换实际上可能会导致更差的用户体验)这是您可能会感兴趣的另一个功能请求:Combine workspace trust with enablePromptUseWorkspaceTsdk #135713。引用该功能请求:
现在我们在 VSCode 中有了工作区信任功能。
enablePromptUseWorkspaceTsdk的单独提示感觉有些多余。当用户已经信任工作区时,我们能否在工作区设置中自动支持typescript.tsdk?这不会降低安全性,并且可以更轻松地在我们庞大的开发人员用户群中分发
typescript.tsdk。
【讨论】: