Hacker News new | past | comments | ask | show | jobs | submit login

> If are we going to do this kind of thing why not a least do it simply:

I expect it's because actual type-switching allows the compiler to type-assert at the same time. So it knows what within the String branch the value is an actual string. Whereas typeof() is severely limited (only primitive types) and switching on an arbitrary property tells pretty much nothing to the compiler.




Yes, that's the current state of things. But support for control-flow typing of my above two examples seems like an easy addition to the TypeScript compiler - if that's what you want. Personally I'd like to see JS support for proper pattern matching, i.e. TC39, then TypeScript can build on that.


> But support for control-flow typing of my above two examples seems like an easy addition to the TypeScript compiler - if that's what you want.

The first one is not useful and the second one is nonsensical (as there is no guarantee that there's any relation between #constructor and the type of the variable)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: