TypeScript
Nuxt 完全类型化,并提供便捷的快捷方式,确保你在编码时能够访问准确的类型信息。
类型检查
默认情况下,为了性能考虑,Nuxt 在运行 nuxi dev
或 nuxi build
时不会进行类型检查。
要在构建或开发时启用类型检查,请安装 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
然后,运行 nuxi typecheck
命令来检查类型:
Terminal
npx nuxi typecheck
你也可以在 nuxt.config
文件中使用 typescript.typeCheck
选项,在构建或开发时启用类型检查:
nuxt.config.ts
export default defineNuxtConfig({
typescript: {
typeCheck: true
}
})
自动生成的类型
当你运行 nuxi dev
或 nuxi build
时,Nuxt 会为 IDE 类型支持(以及类型检查)生成以下文件:
.nuxt/nuxt.d.ts
此文件包含你使用的所有模块的类型,以及 Nuxt 所需的关键类型。你的 IDE 应该能够自动识别这些类型。
文件中某些引用指向仅在 buildDir
(.nuxt
)中生成的文件,因此,为了获得完整的类型支持,你需要运行 nuxi dev
或 nuxi build
。
.nuxt/tsconfig.json
此文件包含推荐的项目基本 TypeScript 配置,包括 Nuxt 或你使用的模块注入的已解析别名,从而为像 ~/file
或 #build/file
这样的别名提供完整的类型支持和路径自动补全。
考虑使用 nuxt.config 的
imports
部分来包含默认目录之外的其他目录。这对于自动导入你在整个应用中使用的类型非常有用。Nitro 还会为 API 路由自动生成类型。此外,Nuxt 还会为全局可用组件、从你的组合式函数自动导入以及其他核心功能生成类型。
请注意,扩展自
如果你需要进一步扩展
./.nuxt/tsconfig.json
的所有选项都将被你在 tsconfig.json
中定义的选项覆盖。
用你自己的配置覆盖像 "compilerOptions.paths"
这样的选项会导致 TypeScript 不考虑 ./.nuxt/tsconfig.json
中的模块解析。这可能导致像 #imports
这样的模块解析无法被识别。
如果你需要进一步扩展
./.nuxt/tsconfig.json
提供的选项,可以在 nuxt.config
中使用 alias
属性。nuxi
会自动识别并相应扩展 ./.nuxt/tsconfig.json
。严格检查
TypeScript 提供了一些检查功能,为你的程序提供更高的安全性和分析能力。
Nuxt 默认启用严格检查,以提供更强的类型安全性。
如果你正在将代码库转换为 TypeScript,你可能希望通过在 nuxt.config
中将 strict
设置为 false
来暂时禁用严格检查:
nuxt.config.ts
export default defineNuxtConfig({
typescript: {
strict: false
}
})