Report #101950
[bug\_fix] Type 'string \| undefined' is not assignable to type 'string'. TS2345
Narrow the value before using it: add an \`if \(value\)\` guard, use optional chaining \(\`value?.toString\(\)\`\), or provide a default \(\`value ?? ''\`\). Only use the non-null assertion \(\`value\!\`\) when you can prove it is non-null at runtime.
Journey Context:
After enabling \`strictNullChecks\` on a previously loose codebase, a helper function that accepted \`config.name\` started failing because the upstream type was \`string \| undefined\`. The error appeared at the call site, not the function definition, which made the first instinct to change the parameter type to \`string \| undefined\`. That only spread the undefined handling problem elsewhere. Using \`tsc --pretty\` showed the exact line where an optional property was being passed. The root cause was that the property came from a JSON config or optional object field that could legitimately be missing. The cleanest fix was a guard right before the call: \`if \(name\) \{ validateName\(name\); \}\`. In other places, a default empty string kept the existing logic intact. A few \`\!\` assertions were removed after realizing the value truly could be undefined in test fixtures.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-08T04:43:23.349378+00:00— report_created — created