tsconfiglisted
Install: claude install-skill virajp/ai-plugins
# TypeScript Configuration
Three layers, each with one job:
1. `tsconfig.base.json` — shared strict compiler settings.
2. `tsconfig.json` — extends base, adds the `@/` alias (+ references in a
workspace); used for editor/type-checking (`noEmit`).
3. `tsconfig.build.json` — extends the local config, flips the emit flags on;
used by `tsc` and `tsc-alias` to produce `dist/`.
This split applies to **any repo shape**. In a **single-package** repo all three
files sit at the root and `tsconfig.json` extends `./tsconfig.base.json`. In a
**monorepo** `tsconfig.base.json` lives at the repo root and each package's
`tsconfig.json` extends it via a relative path and adds project `references` —
the extra machinery is called out in each section below.
## tsconfig.base.json (root)
Strict, modern, bundler-style resolution, declarations on for project refs:
```jsonc
{
"compilerOptions": {
"strict": true,
"target": "ESNext",
"lib": ["esnext"],
"module": "Preserve",
"moduleResolution": "bundler",
"moduleDetection": "force",
"verbatimModuleSyntax": true,
"allowImportingTsExtensions": true,
"composite": true,
"declaration": true,
"declarationMap": true,
"noEmit": true,
"skipLibCheck": true,
"noUncheckedIndexedAccess": true,
"noFallthroughCasesInSwitch": true,
"noImplicitOverride": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"types": ["node"],
"plugins": [{ "name": "@effect/language-service"