Typescript: typy pro manipulaci s řetězci
29. 4. 2022Pojďme se tentokrát seznámit s vestavěnými typy, které nám usnadní práci s řetězci / proměnnými, a mohou být použity v šablonách (tzv. template string literals).
Které typy to jsou?
- Uppercase<StringType> - transformuje vstupní řetězec do řetězce s pouze velkými písmeny
- Lowercase<StringType>- transformuje vstupní řetězec do řetězce s pouze malými písmeny
- Capitalize<StringType> - transformuje vstupní řetězec do řetězce s prvním znakem psaným velkým písmem
- Uncapitalize<StringType> - transformuje vstupní řetězec do řetězce s prvním znakem psaným malým písmenem
Každý z typů přijímá jeden parametr typu string. Pokud se pokusíme předat parametr jiného typu, pak dostaneme chybovou zprávu, upozorňující nás na porušení daného omezení.
Výše zmíněné typy jsou z výkonnostních důvodů poskytovány TypeScriptovým kompilátorem a nejsou definovány v TypeScriptovém .d.ts souboru. Implementace těchto typů využívá přímo JavaScriptové funkce pro manipulaci s řetězci a nebere v potaz locale běhového prostředí (je to soubor parametrů, které definují uživatelův jazyk, stát a jiné zvláštnosti, které se následně projeví v uživatelském rozhraní). Implementace v TypeScriptu 4.1 vypadá následovně:

Uppercase<StringType>
Transformuje vstupní řetězec do řetězce pouze s velkými písmeny.
Mějme typový alias PointsOfTheCompass, jehož definice je následující

Výsledkem následujícího přiřazení

je typový alias se všemi položkami psanými velkými písmeny.

Lowercase<StringType>
Mějme typový alias PointsOfTheCompass, jehož definice je následující

Výsledkem následujícího přiřazení

je typový alias se všemi položkami psanými malými písmeny.

Capitalize<StringType>
Mějme typový alias PointsOfTheCompass, jehož definice je následující

Výsledkem následujícího přiřazení

je typový alias, kde každá položka má první písmeno psáno velkým písmenem

Uncapitalize<StringType>
Mějme typový alias PointsOfTheCompass, jehož definice je následující

A výsledkem následujícího přiřazení

je typový alias, kde každá položka má první písmeno psáno malým písmenem

Použití
Nejčastější použití nalezneme spolu s template literal type. Mějme typový alias Point, jehož definice je následující

Výsledkem následujícího přiřazení

pak je

pokud náš příklad rozvineme dále a aplikujeme spolu s template literal type, pak můžeme například generovat další typ

kde jako výsledek dostáváme

pokud tento přístup následně nakombinujeme i s mapováním

pak dostaneme následující typový alias

Závěrem
Výše jsme představili typy, které můžeme použít pro manipulaci s řetězci a způsob, jakým je můžeme použít spolu s template string literals a jaké výhody nám to přináší. A na co se můžete těšit příště?
Typy, jako jsou Readonly<Type> ; Record<Keys, Type> ; Pick<Type, Keys> a Omit<Type, Keys>