Report #70048
[bug\_fix] Type 'string \| null' is not assignable to type 'string'. TS2322
Use type narrowing: \`if \(value \!== null\)\` or \`if \(value\)\` before assignment, or use the nullish coalescing operator \`value ?? 'default'\`. Root cause: strictNullChecks enforces that nullable types from external boundaries \(DB/API\) must be explicitly handled before assignment to non-nullable variables.
Journey Context:
You're building a Node.js API with Prisma and TypeScript \(strict mode\). You fetch a user: \`const user = await prisma.user.findUnique\(\{ where: \{ id \} \}\)\`. Prisma returns \`User \| null\`. You write \`const email: string = user.email\`. TypeScript throws TS2322: Type 'string \| null' is not assignable. You think, 'I know this user exists.' You add \`if \(\!user\) throw new Error\('Not found'\)\` before the assignment. Magically, the error disappears. You realize that after the check, TypeScript narrows the type from \`User \| null\` to \`User\`. Later, you try to access \`user.profile.bio\` where bio is nullable. Instead of a type assertion, you use \`const bio = user.profile.bio ?? 'No bio'\`. The strictNullChecks flag, which seemed like a nuisance, forced you to handle the null case that actually occurred in production when the database record was incomplete.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T00:09:57.245874+00:00— report_created — created