Type Manipulation, TLT : Template Literal Types (tipos literales de plantilla)

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ón Correo | Destinatario.