Hit*_*ama 12 intellisense typescript visual-studio-2022
我正在使用 Visual Studio 2022 处理现有解决方案,其中包含带有节点应用程序的 Web 项目。
该应用程序在文件中配置package.json为使用 TypeScript 3.8.3 npm 包。在 TypeScript 文件中,我使用自 TypeScript 3.7 版以来应支持的可选链接语法,但 ide 将其强调为错误“TS1109:预期表达式”。如果重要的话,节点版本是 14.17.0。全局未安装 Typescript 版本。
该页面指出
默认情况下,Visual Studio 2022 为 JavaScript 和 TypeScript 文件提供语言支持,无需任何特定的项目配置即可支持 IntelliSense。
对于编译 TypeScript,Visual Studio 使您可以灵活地选择在每个项目的基础上使用哪个版本的 TypeScript。
在 MSBuild 编译场景中,推荐使用 TypeScript NuGet 包向项目添加 TypeScript 编译支持。第一次将 TypeScript 文件添加到项目时,Visual Studio 将为您提供添加此包的选项。也可以随时通过 NuGet 包管理器获取此包。当使用NuGet包时,项目中将使用对应的语言服务版本进行语言支持。注意:此软件包的最低支持版本是 3.6。
配置了 npm 的项目可以通过添加 TypeScript npm 包来指定自己的 TypeScript 语言服务版本。您可以在支持的项目中使用 npm 管理器指定版本。注意:此软件包的最低支持版本是 2.1。
Visual Studio 2022 中已弃用 TypeScript SDK。依赖于 SDK 的现有项目应升级为使用 NuGet 包。对于无法立即升级的项目,SDK 仍可在 Visual Studio Marketplace 上获取,并作为 Visual Studio 安装程序中的可选组件。
我对此的理解是 Visual Studio 应该尊重为 npm 包指定的 TypeScript 版本。然而,由于某种原因,编辑器无法识别 3.8 中应该可用的语法。
我的理解有错吗?应该做什么才能让 Visual Studio 2022 识别 .ts 文件中的可选链接语法?
更新:因为显然这个问题还不够清楚。
Visual Studio CODE默认情况下使用附带的 Typescript 版本来提供语言支持(注意:您仍然需要 tsc 编译器来实际编译代码)。typescript.tsdk如果使用该设置,编辑器可以自动检测安装在项目根文件夹或其他路径中的 Typescript 版本。
问题是如何在使用 VS2022 时获得类似的行为。出于测试目的,我创建了一个新的空 Angular 项目。该项目开箱即用,配置为使用 Typescript 版本 4+。我已编辑package.json文件以降级到 3.5.1 并运行 npm install 以确保项目节点文件夹已更新。在这种情况下,即使项目现在使用 TS 3.5.1(仅在 3.7 中添加了支持),智能感知仍然可以识别可选链接语法。
比较这两个项目文件,我可以看到另一个项目文件最后包含一个“Last”,我认为这是对旧 sdk 支持的引用。据我所见:
顺便说一句,这两个项目都在“属性”窗口中显示任何“Typescript Build”设置。
同样,问题很简单:如何指示 Visual Studio 2022 使用项目中本地安装的 Typescript 版本,而不使用过时的 Esternal sdk,或者必须使用尝试覆盖 VS 默认行为的 nuget 包污染项目?
我刚刚在 VS 2022 中发现以下警告。我使用 VS-Installer 安装缺少的 Typescript SDK,因为我还没有时间升级到 MSBuild 包。
然后,我可以在项目属性选项卡上设置 Typescript 版本,就像在旧版本中一样。
| 归档时间: |
|
| 查看次数: |
3683 次 |
| 最近记录: |