"files.exclude": {
"**/*.js": { "when": "$(basename).ts" },
"**/**.js": { "when": "$(basename).tsx" }
这有点诡计。搜索全局模式用作键。上面的设置使用两种不同的 glob 模式来提供两个唯一的键,但搜索仍将匹配相同的文件。
使用较新的 TypeScript 版本
VS Code 附带了 TypeScript 语言服务的最新稳定版本,并默认使用它在工作区中提供 IntelliSense。TypeScript 的工作区版本独立于您用来编译文件的 TypeScript 版本*.ts
。对于大多数常见情况,您可以只使用 VS Code 的内置 TypeScript 版本进行 IntelliSense,而无需担心,但有时您可能需要更改 VS Code 用于 IntelliSense 的 TypeScript 版本。
这样做的原因包括:
通过切换到 TypeScript nightly build 来尝试最新的 TypeScript 功能 ( typescript@next
)。
确保您使用的 TypeScript for IntelliSense 版本与编译代码时使用的版本相同。
查看 TypeScript 文件时,活动的 TypeScript 版本及其安装位置会显示在状态栏中:
如果您想更改工作区中 TypeScript 的默认版本,您有几个选择:
使用 TypeScript 的工作区版本
如果您的工作区具有特定的 TypeScript 版本,则可以通过打开 TypeScript 或 JavaScript 文件并单击状态栏中的 TypeScript 版本号,在 TypeScript 的工作区版本和 VS Code 默认使用的版本之间进行切换。将出现一个消息框,询问您应使用哪个版本的 TypeScript VS Code:
使用它可以在 VS Code 附带的 TypeScript 版本和工作区中的 TypeScript 版本之间进行切换。您还可以使用TypeScript:选择 TypeScript 版本命令触发TypeScript 版本选择器。
VS Code 将自动检测安装node_modules
在工作区根目录下的 TypeScript 工作区版本。typescript.tsdk
您还可以通过在用户或工作区设置中配置来明确告诉 VS Code 使用哪个版本的 TypeScript 。该typescript.tsdk
设置应指向包含 TypeScripttsserver.js
文件的目录。您可以使用 找到 TypeScript 安装位置npm list -g typescript
。该tsserver.js
文件通常位于lib
文件夹中。
"typescript.tsdk": "/usr/local/lib/node_modules/typescript/lib"
提示:要获取特定的 TypeScript 版本,请@version
在 npm 安装期间指定。例如,对于 TypeScript 3.6.0,您将使用npm install --save-dev [email protected]
. 要预览 TypeScript 的下一个版本,请运行npm install --save-dev typescript@next
.
请注意,虽然在这些示例中typescript.tsdk
指向 的目录,但该目录必须是包含 TypeScript文件的完整 TypeScript 安装。lib
typescript
typescript
package.json
typescript.tsdk
您还可以通过添加指向文件目录的工作区设置来告诉 VS Code 在特定工作区中使用特定版本的 TypeScript tsserver.js
:
"typescript.tsdk": "./node_modules/typescript/lib"
工作typescript.tsdk
区设置仅告诉 VS Code TypeScript 的工作区版本存在。要实际开始使用 IntelliSense 的工作区版本,您必须运行TypeScript:选择 TypeScript 版本命令并选择工作区版本。
使用 TypeScript 每夜构建
在 VS Code 中尝试最新 TypeScript 功能的最简单方法是安装JavaScript 和 TypeScript Nightly 扩展。
此扩展会自动将 VS Code 的内置 TypeScript 版本替换为最新的 TypeScript nightly 版本。如果您已使用TypeScript:选择 TypeScript 版本命令配置了 TypeScript 版本,请确保切换回使用 VS Code 的 TypeScript 版本。
混合 TypeScript 和 JavaScript 项目
混合 TypeScript 和 JavaScript 项目是可能的。要在 TypeScript 项目中启用 JavaScript,您可以allowJs
在.true
tsconfig.json
提示:编译tsc
器不会jsconfig.json
自动检测文件是否存在。使用–p
参数来tsc
使用您的jsconfig.json
文件,例如tsc -p jsconfig.json
.
处理大型项目
如果您正在处理包含数百或数千个 TypeScript 文件的代码库,您可以采取以下一些步骤来改善 VS Code 中的编辑体验以及命令行上的编译时间。
确保您的 tsconfig 仅包含您关心的文件
在项目中使用include
或可确保项目仅包含应属于项目一部分的文件。files
tsconfig.json
有关配置项目的tsconfig.json
.
使用项目引用分解您的项目
您可以通过使用项目引用将源代码分解为较小的项目来提高性能,而不是将源代码构建为单个大型项目。这使得 TypeScript 一次只加载代码库的一个子集,而不是加载整个代码库。
有关如何使用项目参考以及使用它们的最佳实践的详细信息,请参阅TypeScript 文档。
继续阅读以了解:
编辑 TypeScript - TypeScript 的特定编辑功能。
重构 TypeScript - 来自 TypeScript 语言服务的有用重构。
调试 TypeScript - 为您的 TypeScript 项目配置调试器。
如何解决 TypeScript“无法编译外部模块”错误?
如果出现该错误,请通过tsconfig.json
在项目的根文件夹中创建文件来解决它。tsconfig.json 文件可让你控制 Visual Studio Code 编译 TypeScript 代码的方式。有关更多信息,请参阅tsconfig.json 概述。
为什么使用 VS Code 时会收到与编译 TypeScript 项目时不同的错误和警告?
VS Code 附带了 TypeScript 语言服务的最新稳定版本,它可能与您的计算机上全局安装的或工作区本地安装的 TypeScript 版本不匹配。因此,您可能会发现编译器输出与活动 TypeScript 语言服务检测到的错误之间存在差异。有关安装匹配的 TypeScript 版本的详细信息,请参阅使用较新的 TypeScript 版本。
我可以使用 VS 2022 附带的 TypeScript 版本吗?
不,Visual Studio 2019 和 2022 附带的 TypeScript 语言服务与 VS Code 不兼容。您需要从npm安装单独版本的 TypeScript 。
为什么有些错误会报告为警告?
默认情况下,VS Code TypeScript 将代码样式问题显示为警告而不是错误。这适用于:
变量已声明但从未使用
属性已声明但其值从未被读取
检测到无法访问的代码
未使用的标签
开关中的 Shell 掉落
并非所有代码路径都会返回值
将这些视为警告与其他工具(例如 TSLint)是一致的。tsc
当您从命令行运行时,这些仍然会显示为错误。
您可以通过"typescript.reportStyleChecksAsWarnings": false
在用户设置中进行设置来禁用此行为。
11/1/2023