mirror of
https://github.com/oven-sh/bun
synced 2026-02-02 15:08:46 +00:00
Replace old docs with new docs repo (#24201)
This commit is contained in:
54
docs/typescript.mdx
Normal file
54
docs/typescript.mdx
Normal file
@@ -0,0 +1,54 @@
|
||||
---
|
||||
title: TypeScript
|
||||
description: Using TypeScript with Bun, including type definitions and compiler options
|
||||
---
|
||||
|
||||
To install the TypeScript definitions for Bun's built-in APIs, install `@types/bun`.
|
||||
|
||||
```zsh terminal icon="terminal"
|
||||
bun add -d @types/bun # dev dependency
|
||||
```
|
||||
|
||||
At this point, you should be able to reference the `Bun` global in your TypeScript files without seeing errors in your editor.
|
||||
|
||||
## Suggested `compilerOptions`
|
||||
|
||||
Bun supports things like top-level await, JSX, and extensioned `.ts` imports, which TypeScript doesn't allow by default. Below is a set of recommended `compilerOptions` for a Bun project, so you can use these features without seeing compiler warnings from TypeScript.
|
||||
|
||||
```json tsconfig.json icon="file-code"
|
||||
{
|
||||
"compilerOptions": {
|
||||
// Environment setup & latest features
|
||||
"lib": ["ESNext"],
|
||||
"target": "ESNext",
|
||||
"module": "Preserve",
|
||||
"moduleDetection": "force",
|
||||
"jsx": "react-jsx",
|
||||
"allowJs": true,
|
||||
|
||||
// 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
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
If you run `bun init` in a new directory, this `tsconfig.json` will be generated for you. (The stricter flags are disabled by default.)
|
||||
|
||||
```sh terminal icon="terminal"
|
||||
bun init
|
||||
```
|
||||
Reference in New Issue
Block a user