TypeScript
Nitro 以 TypeScript 为先:无需任何配置,即可使用 TypeScript 编写配置、处理程序和服务端代码
Nitro 使用 TypeScript 编写,并会打包你的服务端代码,因此 .ts 文件在开发和生产环境中都可以开箱即用,无需单独的编译步骤。TypeScript 编译器仅在类型检查时需要(例如在 CI 中执行 tsc --noEmit)。
所有公共工具都附带类型定义:
import { defineConfig } from "nitro";
export default defineConfig({
// Fully typed config with completions
});类型(例如 NitroConfig、NitroModule 或 NitroRuntimeConfig)从 nitro/types 导出:
import type { NitroModule } from "nitro/types";#tsconfig.json 设置
Nitro 提供了一个可共享的 TypeScript 配置,你可以从中进行扩展:
tsconfig.json
{
"extends": "nitro/tsconfig"
}它启用了与 Nitro 打包代码方式相匹配的现代严格默认设置:strict 类型检查、打包器模块解析、noEmit、verbatimModuleSyntax 和 allowImportingTsExtensions(因此你可以在导入中使用显式的 .ts 扩展名)。你可以通过在其基础上添加自己的 compilerOptions 来覆盖任何选项:
tsconfig.json
{
"extends": "nitro/tsconfig",
"compilerOptions": {
"jsx": "react-jsx"
}
}#typescript 配置选项
| 选项 | 默认值 | 描述 |
|---|---|---|
tsConfig | 项目的 tsconfig.json | 打包器用于 JSX 选项和路径别名的 TypeScript 配置 |
Nitro 会读取项目根目录中的 tsconfig.json,以获取 JSX 设置(jsx、jsxFactory、jsxFragmentFactory、jsxImportSource)和路径别名。设置 typescript.tsConfig 可覆盖该配置:
nitro.config.ts
import { defineConfig } from "nitro";
export default defineConfig({
typescript: {
tsConfig: {
compilerOptions: {
jsx: "react-jsx",
},
},
},
});