3 ms·
Let me add a few cons then - Saying the error messages are "not intuitive" is a bit of an understatement. Most memorably, this was an actual message I was pres
by mediumdeviation 9y ago
Let me add a few cons then
- Saying the error messages are "not intuitive" is a bit of an understatement. Most memorably, this was an actual message I was presented with after upgrading to Flow v0.53 - https://imgur.com/UseQxEz.png https://imgur.com/UseQxEz.png
- Flow's goal appears to be ensuring correctness rather than being useful. Object.value produces an array of mixed, effectively erasing their type (https://github.com/facebook/flow/issues/2174 https://github.com/facebook/flow/issues/2174). document.body is a Maybe (https://github.com/facebook/flow/issues/4783 https://github.com/facebook/flow/issues/4783). All use of getters and setters are marked as unsafe, with no way to selectively opt in or out (https://github.com/facebook/flow/issues/2826 https://github.com/facebook/flow/issues/2826). These are pedantic to the point of uselessness.
- When a function call's parameter type disagrees with the function signature, Flow flips a coin and marks one of them as incorrect. GitHub issue from Oct 2016 - https://github.com/facebook/flow/issues/2587 https://github.com/facebook/flow/issues/2587 (issue is closed because they're 'working on it', not because it's actually resolved)
- Flow's libdef is a fraction of TypeScript's. I frequently convert TypeScript libdefs to Flow libdefs. I have yet to see a library that has Flow libdef but not TypeScript libdefs.