tsconfig.json configures the TypeScript compiler — which files to include, the target JS version, module system, and type-checking strictness. Enabling strict is the key to real type safety.
Important options: target (ES version to emit), module (CommonJS/ESNext), outDir/rootDir, esModuleInterop (smooth default imports), and include/exclude. The strict flag turns on a bundle of strict checks: strictNullChecks (null/undefined must be handled), noImplicitAny (no silent any), strictFunctionTypes, and more. Turning strict on for an automation project catches the most bugs; other useful flags are noUnusedLocals, noImplicitReturns, and skipLibCheck. Framework starters (Playwright, Cypress) ship a tsconfig you extend. Without strict, TypeScript's safety is significantly weaker.
Turning on strict in a Cypress project surfaces dozens of places where a possibly-undefined element or response field was used unguarded — each a latent flaky-test cause now caught at compile time.
A team's TypeScript catches almost no bugs. You check tsconfig and strict is false. What do you enable and what's the main risk?