Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Obviously if this gets reused you need to put it in a central definition.


How wouldn’t it be reused? Besides, what will happen if you need to change a constant in the enum from „a“ to „b“? Compiler won’t help you to spot all the places like ˋˋˋif (value == „a“)ˋˋˋ, it will quietly become unreachable in runtime.


You underestimate TypeScript. Your example will give a compiler error:

    This comparison appears to be unintentional because the types '"a"' and '"b"' have no overlap.(2367)
https://www.typescriptlang.org/play/?#code/MYewdgzgLgBAZiEAu...

It's features like these that make Python/Ruby/etc. type-checkers insufficient substitutes for TypeScript.

I think my example wasn't the best. Of course "active" | "inactive" would get reused. But if it's just a little function flag it could easily be a one-off.


The only place I believe this pattern is acceptable is option props in React components.

Otherwise, it becomes an absolute mess of “almost” defined correctly.




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

Search: