Flow Object.values(…)
JavaScript typing utilities, like Flow and TypeScript, have become popular in JavaScript apps of all sizes. As I mentioned in our Script & Style Show typing podcast, typing is a great way to implicitly implement documentation and validation. Flow isn't always easy to perfect, however, and Object.values
was a pain point for me.
When using Flow, Object.values
could trigger the following error:
Cannot call Object.values(…).map with function bound to callbackfn because property {prop} is missing in mixed [1] in the first argument.
The reason for this error is that Object.values()
could return any value type. One way to get past this annoyance is to use the following:
...(Object.values(whatever): any)
Using an any
type is never ideal but providing a type with Object.values
will help satisfy Flow. In the end, it does make sense that Object.values
isn't trusted, because anything could be returned, but having to use any
is a tough pill to swallow for type lovers!
This saves a lot of time of debugging hours. Thank you for the post.