The problem statement
Runtime errors are annoying in development
And they're devastating in production
You could have 100% automated test code coverage on your entire application and still experience a runtime error. Sure is a good thing you've tested every permutation of data for every function in isolation and integration right? right... 😐
How's the discoverability of your data models? When a developer with inexperience in the codebase jumps in, how much time are they console logging objects to figure out what properties they've got? Too much time. That's the answer.