Type Alias
Los Type Alias son exactamente los mismos tipos dedatos y valores originales solo que con nombres alternativos, esto sirve para darle más semántica al lenguaje.
Type alias utiliza la palabra reservada type
para funcionar:
type Name = string;
type NameResolver = () => string;
type NameOrResolver = Name | NameResolver;
function getName(n: NameOrResolver): Name {
if (typeof n === "string") {
return n;
}
else {
return n();
}
}
los Type alias no solo pueden ser tipos de datos generícos, también se pueden utilizar parametros como por ejemplo:
type Container<T> = { value: T };
También puede hacer referencia a sí mismo:
type Tree<T> = {
value: T;
left: Tree<T>;
right: Tree<T>;
}
El operador &
se utiliza para crear un tipo de dato base como por ejemplo:
// FOO
enum FooIdBrand {}
type FooId = FooIdBrand & string;
// BAR
enum BarIdBrand {}
type BarId = BarIdBrand & string;