Ctrl K
ComunidadGuías…

tsconfig.json

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
{
  "$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"]
}