# Strict Mode & Compiler Errors — TypeScript

Source: https://www.geekswithgeeks.com/en/typescript/ts-strict-mode

> One flag that turns on TypeScript's full safety net, and how to read what it tells you.

## The strict flag

`"strict": true` in `tsconfig.json` bundles several checks — `strictNullChecks`, `noImplicitAny`, and more — into one switch. New projects should turn it on from day one.

## strictNullChecks catch

With strict null checks, `null`/`undefined` aren't silently allowed everywhere — you must handle them explicitly.

```typescript
function getLength(s: string | null): number {
  return s.length;
  // Error: Object is possibly 'null'.
}

function getLengthSafe(s: string | null): number {
  return s ? s.length : 0; // narrowed, OK
}
```

## Reading compiler errors

TS error messages name the exact incompatible types ("Type 'X' is not assignable to type 'Y'") — read the two type names first; they usually point straight at the fix.

**Quiz:** What does `"strict": true` in tsconfig.json do?

- [ ] Enables a single extra check
- [x] Bundles several strict type-checking options together
- [ ] Only affects the output file names

*Answer:* Bundles several strict type-checking options together. strict is a shorthand that turns on strictNullChecks, noImplicitAny, and several other checks at once.
