默认情况下,出于性能原因,当你运行 nuxt dev 或 nuxt build 时,Nuxt 不会检查类型。
要在构建或开发时启用类型检查,请安装 vue-tsc 和 typescript 作为开发依赖
npm install --save-dev vue-tsc typescript
yarn add --dev vue-tsc typescript
pnpm add -D vue-tsc typescript
bun add -D vue-tsc typescript
然后,运行 nuxt typecheck 命令来检查你的类型
npx nuxt typecheck
要在构建或开发时启用类型检查,你也可以在你的 nuxt.config 文件中使用 typescript.typeCheck 选项
export default defineNuxtConfig({
typescript: {
typeCheck: true,
},
})
当你运行 nuxt dev 或 nuxt build 时,Nuxt 会生成以下文件以支持 IDE 类型(和类型检查)
.nuxt/nuxt.d.ts此文件包含你正在使用的任何模块的类型,以及 Nuxt 所需的关键类型。你的 IDE 应该自动识别这些类型。
文件中的某些引用指向仅在你的 buildDir (.nuxt) 中生成的文件,因此要获得完整的类型,你需要运行 nuxt dev 或 nuxt build。
.nuxt/tsconfig.app.json此文件包含你的项目推荐的基本 TypeScript 配置,包括 Nuxt 或你正在使用的模块注入的已解析别名,因此你可以获得完整的类型支持和别名(例如 ~/file 或 #build/file)的路径自动完成。
imports 部分来包含默认目录之外的目录。这对于自动导入你在整个应用程序中使用的类型很有用。./.nuxt/tsconfig.json。但是,我们建议使用新的配置文件(.nuxt/tsconfig.app.json、.nuxt/tsconfig.server.json 等)的 TypeScript 项目引用,以获得更好的类型安全性和性能。如果你确实从 ./.nuxt/tsconfig.json 扩展,请记住所有选项都将被你在 tsconfig.json 中定义的选项覆盖。使用你自己的配置覆盖诸如 "compilerOptions.paths" 等选项将导致 TypeScript 不考虑模块解析,这可能导致诸如 #imports 等模块解析无法识别。如果你需要进一步扩展选项,可以在你的 nuxt.config 中使用 alias 属性。Nuxt 将会识别它们并相应地扩展生成的 TypeScript 配置。Nuxt 使用TypeScript 项目引用以提高类型检查性能并提供更好的 IDE 支持。此功能允许 TypeScript 将你的代码库分解成更小、更易于管理的部分。
当你运行 nuxt dev 或 nuxt build 时,Nuxt 将为应用程序的不同部分生成多个 tsconfig.json 文件。
.nuxt/tsconfig.app.json - 应用程序代码的配置.nuxt/tsconfig.node.json - nuxt.config 和模块的配置.nuxt/tsconfig.server.json - 服务器端代码的配置(如适用).nuxt/tsconfig.shared.json - 用于应用程序和服务器上下文之间共享的代码(例如类型和非环境特定实用程序).nuxt/tsconfig.json - 用于向后兼容的旧配置这些文件中的每一个都配置为引用适当的依赖项并为其特定上下文提供最佳类型检查。
由于项目被分为多个类型上下文,因此在正确的上下文内增强类型以确保它们得到正确识别非常重要。
例如,如果你想为 app 上下文增强类型,增强文件应该放在 app/ 目录中。
类似地
server 上下文,将增强文件放在 server/ 目录中。shared/ 目录中。TypeScript 带有某些检查功能,可为你提供更高的程序安全性和分析。
严格检查在 Nuxt 中默认启用,可为你提供更高的类型安全性。
如果你当前正在将代码库转换为 TypeScript,你可能希望通过在你的 nuxt.config 中将 strict 设置为 false 来暂时禁用严格检查
export default defineNuxtConfig({
typescript: {
strict: false,
},
})