typeUtils
Script
v3
Fork
1
2
3
4
5
6
7
8
interface
Flavoring
<
FlavorT
>
{
_type
?
:
FlavorT
;
}
// Based on https://spin.atomicobject.com/typescript-flexible-nominal-typing/
// Prevents one flavored type from being used as another.
// Use like: Flavor<number, 'UserId'>
export
type
Flavor
<
T
,
FlavorT
>
=
T
&
Flavoring
<
FlavorT
>
;