Tag
Type tagging and branding for TypeScript.
Last updated
Was this helpful?
Type tagging and branding for TypeScript.
Last updated
Was this helpful?
Source code is hosted on
Type tagging, also known as branding, is a common practice in advanced TypeScript setups. The main purpose of this approach is to make certain primitive types more predictable. Using branded types leads to a better traceability of data in the project and encourages developers to be more aware when working with critical, primitive data.
Let's have a look at this example below:
We have created a type alias UUID
that is used on the type User
. Right now, any string
value is a valid UUID
:
This is very implicit, not traceable, and is not very safe since you pay less attention to what is passed around, since everything is just a string
.
What if we could make this more explicit?
Now we are using a branded string
instead of plain string
. You can not assign a plain string
to a UUID
anymore, if you do so, you have to cast it explicitly. Now you also have full traceability on where UUID
s are used in the project.
Creates a branded type for any primitive value: