3 ms·
Afaik, typescript is pretty bad in terms of catching some basic errors. Types are not enforced. A caller can change sync function to async, breaking the functio
by ashishb 7y ago
Afaik, typescript is pretty bad in terms of catching some basic errors. Types are not enforced. A caller can change sync function to async, breaking the functionality downstream.
- xzel 7y agoYou can decide if they're enforced or not. That is part of how it is gradual typing.
- paulddraper 7y agoYes gradually typed languages are usually looser/more flexible about static typing. > A caller can change sync function to async, breaking the functionality downstream. I think you mean callee? Are you taking about using a returned result? Because most languages permit ignoring return values. If you want to check out promise use, check out https://tsetse.info/must-use-promises https://tsetse.info/must-use-promises
- ashishb 7y agoSorry, I did mean callee. Consider ``` const myIntValue = f(); ``` This code will silently break when f changes from sync to async.
- bcherny 7y agoRight, but there will be an error where you consume myIntValue: const myIntValue = f() // Error TS2365: Operator '+' cannot be applied to types 'Promise<number>' and '2' const myResult = myIntValue + 2 async function f() { return 42 }