Hacker News new | ask | show | jobs
by just-tom 698 days ago
Nice, but without support for Enums, for me it's mostly useless.
2 comments

In our codebase we started to disallow enums in favour of string literal types, and once folks get over the ingrained "this needs to be an enum" (coming mostly from other languages like Java), it's not much missed.

Enums are one of the very few things in typescript that seem to not have turned out that well, but it's relatively easy to work without them with string-literable types and such, derived from some const in case they're also needed at runtime.

100% agree. Coming from Java I really wanted an Enum type, but string literals/discriminated unions fill that niche just fine.
agree enums in typescript are the devil
Could u explain why ?
There are union types for strings; and there are plain javascript objects (typed as const) if "namespace.name" syntax is desired. With these available, what is the point of enums?
Namespaces are also not supported as per https://github.com/nodejs/node/blob/main/doc/api/typescript.....

I for one can can live without all these features and will be banning via eslint.

Yes. Both namespaces and enums (and probably the "private" keyword on class methods) are an early addition to the language, which would have never been added if typescript from the very start aligned closely with Ecmascript.