2 ms·
> Casting is often necessary for parsing inbound data from certain mysql libraries or CSV or JSON depending on how it's written. No, that's what sum types are
by xigoi 4y ago
> Casting is often necessary for parsing inbound data from certain mysql libraries or CSV or JSON depending on how it's written.
No, that's what sum types are for.
- noduerme 4y agoI don't see how they're mutually exclusive. I use union types prior to typeguards to end up with ultimately checked, cast values. Say I have a boolean fetched from JSON as "1" or "0". By the time I expose it to the rest of the code as part of a Record, I want to change it to an actual boolean. At first I'm going to treat the inbound value as a union type, e.g. (String | Number | null | undefined | Error). After I deal with the error cases, I'm going to cast it (or in TS, reinitialize it as a single type, boolean) so that any code looking at the imported value sees it as definitely only a boolean without needing to have lots of different pieces of code run their own checks on its type.
- xigoi 4y agoI wouldn't really call that casting, that's just narrowing based on control flow.