Teksty
Uppercase
Zamienia literalny typ tekstowy na wielkie litery.
Czym jest
Przeczytaj definicję: to `intrinsic`. Nie ma TypeScriptu, który to implementuje — kompilator rozpoznaje nazwę i wykonuje pracę wewnętrznie, dlatego nie napiszesz własnego i dlatego nic nie kosztuje przy dowolnej długości. To samo dotyczy `Lowercase`, `Capitalize` i `Uncapitalize`.
Przykłady
Uppercase<'hello'>→"HELLO"Uppercase<'a1!'>→"A1!"Znaki bez formy wielkiej przechodzą nietknięte — i to właśnie sprawia, że naiwny test wielkości źle klasyfikuje każdą cyfrę.
Uppercase<string>→Uppercase<string>
Każdy rozwinięty typ powyżej wypisał TypeScript 5.9.3, nie ręka człowieka.
Czego nie robi
- Nie rozwiązuje się dla nie-literału. `Uppercase<string>` pozostaje odroczone, bo nie ma jednej odpowiedzi do udzielenia.
- Nie stosuje reguł lokalnych. To nie `toLocaleUpperCase`, a tureckie bezkropkowe i nie jest obsługiwane tak, jak zrobiłby to runtime.
Wniosek
Wielkość znaku to dwa testy, nie jeden: równy swojej formie wielkiej *i* różny od małej. Cokolwiek oparte na jednym porównaniu źle klasyfikuje cyfry i symbole.