|
|
|
|
|
by sfilipov
2379 days ago
|
|
> At least the first two of them are type wrappers for strings - opaque to the type checker, but transparent to the runtime. Rust and Haskell have wrappers like this. Typescript does not. You are right that TypeScript aliases don't work like Haskell ones (which are considered different, and type checked). In TypeScript you can use "branded types" to work around the more loose structural typing: type Firstname = string & { readonly brand?: unique symbol }
https://stackoverflow.com/a/51578232 |
|