TypeScript

Nitro 以 TypeScript 为先:无需任何配置,即可使用 TypeScript 编写配置、处理程序和服务端代码

Nitro 使用 TypeScript 编写,并会打包你的服务端代码,因此 .ts 文件在开发和生产环境中都可以开箱即用,无需单独的编译步骤。TypeScript 编译器仅在类型检查时需要(例如在 CI 中执行 tsc --noEmit)。

所有公共工具都附带类型定义:

import { defineConfig } from "nitro";

export default defineConfig({
  // Fully typed config with completions
});

类型(例如 NitroConfigNitroModuleNitroRuntimeConfig)从 nitro/types 导出:

import type { NitroModule } from "nitro/types";

#tsconfig.json 设置

Nitro 提供了一个可共享的 TypeScript 配置,你可以从中进行扩展:

tsconfig.json
{
  "extends": "nitro/tsconfig"
}

它启用了与 Nitro 打包代码方式相匹配的现代严格默认设置:strict 类型检查、打包器模块解析、noEmitverbatimModuleSyntaxallowImportingTsExtensions(因此你可以在导入中使用显式的 .ts 扩展名)。你可以通过在其基础上添加自己的 compilerOptions 来覆盖任何选项:

tsconfig.json
{
  "extends": "nitro/tsconfig",
  "compilerOptions": {
    "jsx": "react-jsx"
  }
}

#typescript 配置选项

选项默认值描述
tsConfig项目的 tsconfig.json打包器用于 JSX 选项和路径别名的 TypeScript 配置

Nitro 会读取项目根目录中的 tsconfig.json,以获取 JSX 设置(jsxjsxFactoryjsxFragmentFactoryjsxImportSource)和路径别名。设置 typescript.tsConfig 可覆盖该配置:

nitro.config.ts
import { defineConfig } from "nitro";

export default defineConfig({
  typescript: {
    tsConfig: {
      compilerOptions: {
        jsx: "react-jsx",
      },
    },
  },
});