Runtime Get Started
TypeScript
Using TypeScript with Bun, including type definitions and compiler options
To get TypeScript definitions for Bun's built-in APIs, install @types/bun.
$ bun add -d @types/bun # dev dependencyYou can now reference the Bun global in your TypeScript files without errors in your editor.
Suggested compilerOptions
Bun supports top-level await, JSX, and imports with .ts extensions, which TypeScript doesn't allow by default. Use these compilerOptions in a Bun project so TypeScript doesn't warn about those features.
{
"compilerOptions": {
// Environment setup & latest features
"lib": ["ESNext"],
"target": "ESNext",
"module": "Preserve",
"moduleDetection": "force",
"jsx": "react-jsx",
"allowJs": true,
"types": ["bun"],
// Bundler mode
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
"verbatimModuleSyntax": true,
"noEmit": true,
// Best practices
"strict": true,
"skipLibCheck": true,
"noFallthroughCasesInSwitch": true,
"noUncheckedIndexedAccess": true,
"noImplicitOverride": true,
// Some stricter flags (disabled by default)
"noUnusedLocals": false,
"noUnusedParameters": false,
"noPropertyAccessFromIndexSignature": false
}
}Running bun init in a new directory generates this tsconfig.json for you.
$ bun initTypeScript 6 and 7
If you're using TypeScript 6.0 or later, you also need "types": ["bun"] in your compilerOptions. See TypeScript 6 and 7.