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