运行时包管理器打包器测试运行器代码检查格式化指南参考博客反馈

TypeScript

在 Bun 中使用 TypeScript,包括类型定义和编译器选项

要获取 Bun 内置 API 的 TypeScript 类型定义,请安装 @types/bun。

terminal
bun add -d @types/bun # 开发依赖

现在,你可以在 TypeScript 文件中引用 Bun 全局变量,编辑器不会再报错。

推荐的 compilerOptions

Bun 支持顶层 await、JSX 以及带有 .ts 扩展名的导入,而 TypeScript 默认不允许这些特性。在 Bun 项目中使用以下 compilerOptions,这样 TypeScript 就不会针对这些特性发出警告。

tsconfig.json
{
  "compilerOptions": {
    // 环境配置 & 最新特性
    "lib": ["ESNext"],
    "target": "ESNext",
    "module": "Preserve",
    "moduleDetection": "force",
    "jsx": "react-jsx",
    "allowJs": true,
    "types": ["bun"],

    // 打包器模式
    "moduleResolution": "bundler",
    "allowImportingTsExtensions": true,
    "verbatimModuleSyntax": true,
    "noEmit": true,

    // 最佳实践
    "strict": true,
    "skipLibCheck": true,
    "noFallthroughCasesInSwitch": true,
    "noUncheckedIndexedAccess": true,
    "noImplicitOverride": true,

    // 一些更严格的标志(默认禁用)
    "noUnusedLocals": false,
    "noUnusedParameters": false,
    "noPropertyAccessFromIndexSignature": false
  }
}

在新目录中运行 bun init 会为你生成此 tsconfig.json 文件。

terminal
bun init

TypeScript 6 和 7

如果你使用的是 TypeScript 6.0 或更高版本,还需要在 compilerOptions 中添加 "types": ["bun"]。请参阅TypeScript 6 和 7。