2 comments

[ 4.6 ms ] story [ 16.5 ms ] thread
"[TypeScript] seems to encourage complex types instead of simpler contracts."

Having refactored a few different codebases across two different businesses and my own personal projects, I must say subjectively that this is the opposite of what I've experienced. Without TypeScript there is essentially no contract at all beyond sparse documentation (be realistic) and the fading memory of whomever implemented the interface you're looking at.

I guess what I was trying to say is that it makes it so easy to write down types, even really complex ones, that it kind of gives a safety net that lets us be more creative in coming up with types than we might otherwise feel comfortable with. So we end up with really complex, 10-line types representing a single function's parameter list.