📄 tsconfig.json
Core TypeScript compiler configuration for the Webui monorepo. Defines strict typing rules, module resolution, and JSX transformation targets.
{
"compilerOptions": {
"target": "ES2022",
"module": "ESNext",
"moduleResolution": "bundler",
"strict": true,
"jsx": "react-jsx",
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"resolveJsonModule": true,
"isolatedModules": true,
"outDir": "./dist",
"declaration": true,
"declarationMap": true
},
"include": ["src/**/*.ts", "src/**/*.tsx"]
}
Configuration Reference
| Property | Description | Type |
|---|---|---|
| target | Sets the JavaScript language version for emitted code. ES2022 enables modern features like top-level await and class fields. | ES2022 |
| module | Defines the module system. ESNext preserves dynamic imports and tree-shaking compatibility for bundlers. | ESNext |
| strict | Enables all strict type-checking options. Recommended for production-grade applications to catch runtime errors at compile time. | boolean |
| jsx | Configures JSX transformation. react-jsx uses the new React 17+ runtime without explicit imports. | string |
| skipLibCheck | Skips type checking of declaration files. Improves build performance significantly in monorepos with many dependencies. | boolean |
| isolatedModules | Ensures each file can be safely transformed independently. Required for Vite, SWC, and Babel compatibility. | boolean |
Usage Notes
This configuration is optimized for the Webui Design System build pipeline. It enforces strict typing across all components while maintaining compatibility with modern bundlers. The declarationMap flag is enabled to support full-stack type checking when consuming Webui as a package. To override specific rules for a sub-package, use extends in the local tsconfig.json.