Report #11990
[bug\_fix] Type 'string \| undefined' is not assignable to type 'string'. Type 'undefined' is not assignable to type 'string'.ts\(2322\)
Add a type guard to narrow the type before assignment. Check if the value is undefined and handle that case \(throw error, return early, or provide a default value\). Alternatively, if you are certain the value is defined at that point, use the non-null assertion operator \(value\!\) as a last resort, or change the target type to accept undefined. The root cause is that strictNullChecks requires explicit handling of null/undefined values.
Journey Context:
You enabled strict: true in tsconfig.json to improve code quality. Immediately, hundreds of errors appear. You pick one: const name: string = users.find\(u => u.id === id\)?.name;. The error says 'Type 'string \| undefined' is not assignable to type 'string''. You look at the find\(\) return type—it's T \| undefined. Before strict mode, TypeScript silently allowed assigning undefined to string. Now it's caught. You consider using the non-null assertion \(users.find\(...\)\!.name\) but realize that's unsafe. Instead, you add a check: const user = users.find\(...\); if \(\!user\) throw new Error\('Not found'\); const name: string = user.name;. The error disappears. You understand that strictNullChecks forces you to explicitly handle the undefined case.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T14:48:17.583087+00:00— report_created — created