|
|
|
|
|
by __ryan__
1091 days ago
|
|
Yes, “any” is a wart. And it’s a bad one. The correct type for values you don’t know the type of (like the response of an API call) is “unknown”. TypeScript does not provide the facilities you describe because there is not a one-size-fits-all solution to the cases that are possible and common in JavaScript. It is left to the developer to decide how to validate unknown data at the boundaries of the API. There are third party libraries that facilitate this in different ways with different trade-offs. The compiler actively lies to you about the types you’ll have at runtime.
I find this to be rare if you are using strict mode with proper TypeScript definition files for your platform and dependencies. Usually the lie is in your own code or bad dependencies when an “unknown” type (including “any”) is cast to a concrete type without being validated. In nearly any other typed language I have some deserialization mechanism.
Could you provide examples? I either don’t understand or I disagree. |
|
Yes, but one of those bad dependencies is the standard library.