tsconfig.json
Rama main · réplica de lectura del repositorio original.
{
"$schema": "https://json.schemastore.org/tsconfig",
"//": "Strict mode is non-negotiable per CONTRIBUTING.md § Code standards. Every flag below has a reason.",
"compilerOptions": {
// === Target / module ===
"target": "ES2022",
"module": "ESNext",
"moduleResolution": "Bundler",
"lib": ["ES2023", "DOM", "DOM.Iterable"],
"jsx": "react-jsx",
// === Strictness - these are the rules CONTRIBUTING.md commits us to ===
"strict": true,
"noImplicitAny": true,
"strictNullChecks": true,
"strictFunctionTypes": true,
"strictBindCallApply": true,
"strictPropertyInitialization": true,
"noImplicitThis": true,
"alwaysStrict": true,
"useUnknownInCatchVariables": true,
// Surfaces footguns the default strict mode misses - array index access returning `T | undefined`,
// unreachable code, switch cases falling through.
"noUncheckedIndexedAccess": true,
"noFallthroughCasesInSwitch": true,
"noImplicitReturns": true,
"noImplicitOverride": true,
// Style enforcement that doubles as bug prevention.
"noUnusedLocals": true,
"noUnusedParameters": true,
// `exactOptionalPropertyTypes` was here but produced friction (forbids
// `name: undefined` even when `name?: string` is declared) without
// catching real bugs the rest of strict mode misses. Off by default;
// re-enable per-package if there's a clear win.
"noPropertyAccessFromIndexSignature": true,
// === Interop / output ===
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"forceConsistentCasingInFileNames": true,
"resolveJsonModule": true,
"isolatedModules": true,
"skipLibCheck": true,
"noEmit": true,
"incremental": true,
// === Path aliases - kept short and explicit ===
// No `baseUrl` (deprecated in TS 6): with moduleResolution "Bundler",
// `paths` resolve relative to this tsconfig's directory.
"paths": {
"@/*": ["./*"]
},
// === Next.js plugin ===
"plugins": [
{
"name": "next"
}
],
"allowJs": true
},
"include": [
"next-env.d.ts",
"**/*.ts",
"**/*.tsx",
".next/types/**/*.ts",
".next/dev/types/**/*.ts"
],
"exclude": ["node_modules", ".next", "PowerDNS-Admin", "dist", "build", "coverage"]
}