Typescript: typy pro manipulaci s řetězci
29. 4. 2022 | Václav Kandus, CleverlancePojď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>