{ "compilerOptions": { // Enable top-level await, and other modern ESM features. "target": "ESNext", "module": "ESNext", // Enable module resolution without file extensions on relative paths, for things like npm package imports. "moduleResolution": "Bundler", // Allow importing TypeScript files using their native extension (.ts(x)). "allowImportingTsExtensions": true, // Enable JSON imports. "resolveJsonModule": true, // Enforce the usage of type-only imports when needed, which helps avoiding bundling issues. "verbatimModuleSyntax": true, // Ensure that each file can be transpiled without relying on other imports. // This is redundant with the previous option, however it ensures that it's on even if someone disable `verbatimModuleSyntax` "isolatedModules": true, // Astro directly run TypeScript code, no transpilation needed. "noEmit": true, // Report an error when importing a file using a casing different from another import of the same file. "forceConsistentCasingInFileNames": true, // Properly support importing CJS modules in ESM "esModuleInterop": true, // Skip typechecking libraries and .d.ts files "skipLibCheck": true, // Allow JavaScript files to be imported "allowJs": true, // Allow JSX files (or files that are internally considered JSX, like Astro files) to be imported inside `.js` and `.ts` files. "jsx": "preserve", // Enable strict mode. This enables a few options at a time, see https://www.typescriptlang.org/tsconfig#strict for a list. "strict": true, // Report errors for fallthrough cases in switch statements "noFallthroughCasesInSwitch": true, // Force functions designed to override their parent class to be specified as `override`. "noImplicitOverride": true, // Force functions to specify that they can return `undefined` if a possible code path does not return a value. "noImplicitReturns": true, // Report an error when a variable is declared but never used. "noUnusedLocals": true, // Report an error when a parameter is declared but never used. "noUnusedParameters": true, // Force the usage of the indexed syntax to access fields declared using an index signature. "noUncheckedIndexedAccess": true, // Report an error when the value `undefined` is given to an optional property that doesn't specify `undefined` as a valid value. "exactOptionalPropertyTypes": true, // Report an error for unreachable code instead of just a warning. "allowUnreachableCode": false, // Report an error for unused labels instead of just a warning. "allowUnusedLabels": false, "baseUrl": ".", "paths": { "pages/*": ["src/pages/*"], "components/*": ["src/components/*"] } } }