3 ms·
TypeScript _itself_ has a branded primitive string type it uses internally.[1] Dedicated syntax for creating unique subsets of a type that denote a particular r
by wwwigham 2y ago
TypeScript _itself_ has a branded primitive string type it uses internally.[1]
Dedicated syntax for creating unique subsets of a type that denote a particular refinement is a longstanding ask[2] - and very useful, we've experimented with implementations.[3]
I don't think it has any relation to runtime type checking at all. It's refinement types, [4] or newtypes[5] depending on the details and how you shape it.
[1] https://github.com/microsoft/TypeScript/blob/main/src/compiler/types.ts#L6051 https://github.com/microsoft/TypeScript/blob/main/src/compil...
[2] https://github.com/microsoft/TypeScript/issues/4895 https://github.com/microsoft/TypeScript/issues/4895
[3] https://github.com/microsoft/TypeScript/pull/33038 https://github.com/microsoft/TypeScript/pull/33038
[4] https://en.wikipedia.org/wiki/Refinement_type https://en.wikipedia.org/wiki/Refinement_type
[5] https://wiki.haskell.org/Newtype https://wiki.haskell.org/Newtype