Explain tsconfig.json code
Paste a tsconfig.json and Vibe explains what each compiler option changes, which files TypeScript checks and why strict suddenly finds errors.
Up to 1,500 characters (about 60 lines). Your code is sent to Unvibe and Anthropic to write the explanation. Don't paste keys or passwords. Common key formats are refused.
Vibe17 lines selected
Press Explain it for the sample, or paste your own code first.
What this tsconfig.json sample shows
- compilerOptions
targetis the JavaScript version to write,rootDirandoutDirsay where the .ts files are and where the .js files go.declarationadds a .d.ts type file next to each .js file andsourceMapa .js.map, so onenpx tscwrote six files for two sources:index.js,index.d.ts,index.js.mapand the same three forprices.- strict checks
strictturns on a group of checks. One of them stoppedfunction double(x)witherror TS7006: Parameter 'x' implicitly has an 'any' type.noUncheckedIndexedAccessisn't part ofstrict: it treatsprices[0]as maybe missing, sofirst.toFixed(2)failed with'first' is possibly 'undefined'.and passed with the option off.- modules
NodeNextmakes TypeScript follow Node's own rules for imports, which depend on package.json's"type": "module". Under them a relative import needs its file extension, and you write.jseven though the file on disk is .ts:import { total } from "./prices"failed witherror TS2835: Relative import paths need explicit file extensions, and"./prices.js"worked. Without the"type"line, the same import compiled.- include and exclude
includelists the files to start from andexcludetakes some of them back out, sonpx tsc --listFilesOnlynamedsrc/prices.tsandsrc/index.tsbut not the test file. Patterns use**for any number of folders.
Good to know
- Run with TypeScript 5.9.3 on a two-file project:
npx tscfinished with no errors, andnode dist/index.jsprintedtotal 19.75andcheapest 3.25. - Unlike package.json, a tsconfig.json may have
//comments, and the compiler read this one, comment included, without complaint. skipLibCheckskips checking every .d.ts file, the ones in installed packages and any you write yourself (TypeScript's docs: "Skip type checking of declaration files."). Builds get faster, and errors inside those files go unreported; your .ts files are still checked.
Watch out: exclude only changes where TypeScript starts, not what it compiles. When src/run-tests.ts imported ./prices.test.js, the test file was checked and written to dist/ anyway, and --listFilesOnly listed it. To keep a file out of the build, nothing the build includes may import it.
Explain tsconfig.json code beside your editor
Unvibe is a free app for Mac and Windows. In the app there is no pasting: select code in any app and press Control+U (Ctrl+Alt+U on Windows).
Install on Mac
curl -fsSL https://unvibe.site/install.sh | bashPaste into Terminal. Unvibe isn't notarized by Apple yet, so this is the smooth path.
Or download the .dmg · Intel Mac build · SHA-256 checksums
Opening the .dmg the first time
- Open the .dmg and drag Unvibe to Applications.
- Open it once; macOS says it can't verify it. Click Done.

Real screen, macOS 15 - System Settings › Privacy & Security › Open Anyway. Confirm, then enter your Mac password. The button shows for about an hour after you try to open Unvibe.

Real screen, macOS 15
The Terminal line checks the download against the published SHA-256 and Unvibe's self-signed signature before it installs anything. More help with the first open