0Pricing
TypeScript Academy · Lekcja

Typy literałów szablonowych: wzorce ciągów znaków

Łącz unie ciągów znaków w typy wzorców.

Typy literałów szablonowych: wzorce ciągów znaków to bezpłatna lekcja TypeScript Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej TypeScript Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs TypeScript Academy zawiera 4 lekcji w sumie.

Witamy

Typy literałów szablonowych używają składni backticków na poziomie typów do konstruowania typów tekstowych z kombinacji innych typów tekstowych.

Podstawowy typ literału szablonowego

Łącz typy literałów tekstowych za pomocą składni szablonów.
type Greeting = `Hello, ${string}`;
const g: Greeting = 'Hello, World'; // OK
// const bad: Greeting = 'Hi there'; // Error

Łączenie sum typów

Gdy suma typów jest używana w literałach szablonowych, TypeScript generuje wszystkie kombinacje.
type Color = 'red' | 'green' | 'blue';
type Size = 'sm' | 'lg';
type ColorSize = `${Color}-${Size}`;
// 'red-sm' | 'red-lg' | 'green-sm' | ...

Wzorzec nazw zdarzeń

Częste zastosowanie: generowanie typowanych nazw zdarzeń na podstawie encji.
type Entity = 'user' | 'product';
type EventName = `on${Capitalize<Entity>}Created`;
// 'onUserCreated' | 'onProductCreated'

Capitalize i inne typy wewnętrzne

TypeScript udostępnia `Capitalize`, `Uncapitalize`, `Uppercase` i `Lowercase` jako wbudowane typy do manipulowania tekstem.
type T = Capitalize<'hello world'>; // 'Hello world'
type U = Uppercase<'hello'>;        // 'HELLO'
type L = Lowercase<'WORLD'>;        // 'world'

Wzorzec generowania getterów

Użyj typów literałów szablonowych wraz z typami mapowanymi, aby generować nazwy metod getterów.
type Getters<T> = {
  [K in keyof T as `get${Capitalize<string & K>}`]: () => T[K]
};

Typowane parametry tras

Wyodrębniaj typowane parametry trasy ze wzorca tekstowego adresu URL.
type RouteParams<T extends string> =
  T extends `${infer _Start}:${infer Param}/${infer Rest}`
    ? Param | RouteParams<Rest>
    : T extends `${infer _Start}:${infer Param}`
    ? Param
    : never;

Nazewnictwo właściwości CSS

Generuj typowane nazwy niestandardowych właściwości CSS.
type CSSVar = `--${string}`;
const color: CSSVar = '--primary-color'; // OK

Literał szablonowy w parametrach funkcji

Użyj typów literałów szablonowych, aby ograniczać parametry tekstowe.
function emit<E extends `on${string}`>(event: E): void {
  console.log('Emitting:', event);
}
emit('onClick'); // OK
// emit('click'); // Error — must start with 'on'

Wyodrębnianie części za pomocą infer

Użyj `infer` wewnątrz literałów szablonowych, aby wyodrębniać podciągi na poziomie typów.
type GetSuffix<T extends string> =
  T extends `${infer _Prefix}_${infer Suffix}` ? Suffix : never;
type S = GetSuffix<'user_created'>; // 'created'

Przecięcie z Record

Połącz typy literałów szablonowych z `Record`, aby tworzyć typowane mapy obsługi zdarzeń.
type Handlers<T extends string> = Record<`on${Capitalize<T>}`, () => void>;

Szybki sprawdzian

Do czego oblicza się `type R = `${string | number}-id``?

Podsumowanie

Typy literałów szablonowych konstruują typy tekstowe z kombinacji, używając składni backticków. Rozdzielają sumy typów, współpracują z pomocniczymi typami `Capitalize` i `Uppercase` oraz umożliwiają tworzenie zaawansowanych wzorców nazw zdarzeń, parametrów tras i zmiennych CSS.

Często zadawane pytania

Czy lekcja „Typy literałów szablonowych: wzorce ciągów znaków” jest bezpłatna?

Tak — pełny tekst „Typy literałów szablonowych: wzorce ciągów znaków” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu TypeScript Academy, przejdź na CoddyKit PRO. Kurs TypeScript Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Typy literałów szablonowych: wzorce ciągów znaków”?

Łącz unie ciągów znaków w typy wzorców. Ćwiczysz TypeScript Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć TypeScript Academy?

Nie wymagamy żadnego doświadczenia. TypeScript Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Typy literałów szablonowych: wzorce ciągów znaków”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji TypeScript Academy?

Tak. Każda lekcja TypeScript Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Typy mapowane: przekształcanie typów obiektów
  2. Modyfikatory w typach mapowanych: readonly i ?
  3. Typy literałów szablonowych: wzorce ciągów znaków
  4. Zmiana mapowania kluczy za pomocą as w typach mapowanych
← Powrót do TypeScript Academy