nuxt logo

文档翻译(非官方)

Nuxt.js
Version:v3.17

TypeScript

Nuxt 完全支持类型,并提供有用的快捷方式,以确保您在编码时能够访问准确的类型信息。

类型检查

默认情况下,出于性能原因,Nuxt 在运行 nuxt devnuxt build 时不会进行类型检查。

要在构建或开发时启用类型检查,请将 vue-tsctypescript 安装为开发依赖:

npm install --save-dev vue-tsc typescript

然后,运行 nuxt typecheck 命令来检查您的类型:

Terminal
npx nuxt typecheck

要在构建或开发时启用类型检查,您还可以在 nuxt.config 文件中使用 typescript.typeCheck 选项:

nuxt.config.ts
export default defineNuxtConfig({
  typescript: {
    typeCheck: true
  }
})

自动生成的类型

当您运行 nuxt devnuxt build 时,Nuxt 会生成以下文件以支持 IDE 类型(和类型检查):

.nuxt/nuxt.d.ts

此文件包含您正在使用的任何模块的类型,以及 Nuxt 所需的关键类型。您的 IDE 应该会自动识别这些类型。

文件中的一些引用是指仅在您的 buildDir (.nuxt) 中生成的文件,因此要获得完整的类型,您需要运行 nuxt devnuxt build

.nuxt/tsconfig.json

此文件包含为您的项目推荐的基本 TypeScript 配置,包括由 Nuxt 或您正在使用的模块注入的已解析别名,因此您可以获得完整的类型支持和路径自动补全,例如 ~/file#build/file

考虑使用 nuxt.configimports 部分来包含默认目录之外的目录。这对于自动导入您在整个应用中使用的类型非常有用。

阅读更多关于如何扩展此配置的信息

观看 Daniel Roe 解释内置 Nuxt 别名的视频。

Nitro 还为 API 路由 自动生成类型。此外,Nuxt 还为全局可用组件生成类型,并从您的 composables 自动导入,以及其他核心功能。

请记住,所有从 ./.nuxt/tsconfig.json 扩展的选项将被您在 tsconfig.json 中定义的选项覆盖。 用您自己的配置覆盖诸如 "compilerOptions.paths" 之类的选项将导致 TypeScript 不考虑来自 ./.nuxt/tsconfig.json 的模块解析。这可能导致诸如 #imports 之类的模块解析无法识别。 :br :br 如果您需要进一步扩展 ./.nuxt/tsconfig.json 提供的选项,可以在 nuxt.config 中使用 alias 属性。Nuxt 会拾取它们并相应地扩展 ./.nuxt/tsconfig.json

严格检查

TypeScript 提供了一些检查,以便为您的程序提供更多的安全性和分析。

严格检查 在 Nuxt 中默认启用,以提供更高的类型安全性。

如果您当前正在将代码库转换为 TypeScript,您可能希望通过在 nuxt.config 中将 strict 设置为 false 来暂时禁用严格检查:

nuxt.config.ts
export default defineNuxtConfig({
  typescript: {
    strict: false
  }
})