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 5.9.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.