After working as a JS/TS developer for quite some years I've grown quite used to seeing || "" or ?? "" strewn around codebases as a quick fix to "remove" nullability, usually due to some value which you assume is set, but can't "prove" type-wise. I think this is a code smell, and I generally think it's not the right solution. In this post I try to explain why I don't think so, and provide some patterns that could help combat the downsides introduced by this pattern.
Here I’ll fix it:
user?.name ?? "ERROR: the user is invalid"Why yes, my son, little Bobby Tables we call him, is on a playdate with his best friend ERROR right now, why do you ask?