Los TLT (template literal types o tipos literales de plantilla) están basados en los SLT (string literal types o tipos literales de cadena), y tienen la capacidad de expandirse en muchas cadenas mediante las uniones.
Tienen la misma sintaxis que las TLS (template literal string, texto ${expresion}
) en JavaScript, pero se utilizan en situaciones de tipos.
type Locacion = "mundo";
type Saludo = `Hola ${Locacion}`;
// type = "Hola mundo"
Cuando se utiliza una unión, el tipo es el conjunto de todas las literales de cadena posibles que conforman cada miembro de la unión.
type Correo = "correo_mensaje" | "correo_cabeceras";
type Destinatario = "destinatario_nombre" | "destinatario_direccion";
type UnionMedianteLiteral = `${Correo | Destinatario}_id`;
// type = "destinatario_nombre_id" | "destinatario_direccion_id" | "correo_mensaje_id" | "correo_cabeceras_id"
Tener cuidado de utilizar la concatenación, en este caso se concatenó con
_id
, de otra forma solo producirá la uniónCorreo | Destinatario
.