Cadenas
Uppercase
Pone en mayúsculas un tipo literal de cadena.
Qué es
Lee la definición: es intrinsic. No hay TypeScript que implemente esto — el compilador reconoce el nombre y hace el trabajo internamente, y por eso no puedes escribir el tuyo y por eso no cuesta nada a ninguna longitud. Lo mismo vale para Lowercase, Capitalize y Uncapitalize.
Ejemplos
Uppercase<'hello'>→"HELLO"Uppercase<'a1!'>→"A1!"Los caracteres sin forma en mayúscula pasan intactos — justo el comportamiento que hace que una prueba ingenua de caja clasifique mal cada dígito.
Uppercase<string>→Uppercase<string>
Cada tipo resuelto de arriba lo imprimió TypeScript 6.0.3, no se escribió a mano.
Lo que no hace
- No se resuelve para un no-literal.
Uppercase<string>queda diferido, porque no hay una única respuesta que dar. - No sigue reglas de configuración regional. Esto no es
toLocaleUpperCase, y la i sin punto turca no se trata como lo haría un runtime.
Conclusión
La caja son dos pruebas, no una: igual a tu forma mayúscula *y* distinta de la minúscula. Todo lo basado en una sola comparación clasifica mal dígitos y símbolos.

