0Pricing
TypeScript Academy · Lekcja

Typowanie wzorców tekstowych (parametry tras, nazwy zdarzeń)

Ograniczanie ciągów znaków za pomocą typów literałów szablonowych: wzorce parametrów tras, przestrzenie nazw zdarzeń i bezpieczne konstruktory

Typowanie wzorców tekstowych (parametry tras, nazwy zdarzeń) to bezpłatna lekcja TypeScript Academy na CoddyKit. To lekcja 3 z 3. 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 3 lekcji w sumie.

Wprowadzenie

Cel: Modelowanie formatów napisów na poziomie typów. Typy literałów szablonowych pozwalają wymuszać wzorce, takie jak "/users/:id" lub "user:created", zachowując przy tym wysoką ergonomię pracy (DX).

  • Ograniczanie według prefiksu lub sufiksu
  • Wyodrębnianie fragmentów za pomocą infer
  • Tworzenie bezpiecznych funkcji pomocniczych

Parametry ścieżek

Prosty szablon ścieżki pozwala wywnioskować nazwę parametru; w przypadkach niespełniających reguły należy użyć never.

type Route = `/${string}`

type RouteWithParam = `/${string}/:${string}`

type ParamOf<R extends string> = R extends `${string}/:${infer P}` ? P : never

// examples
type A = ParamOf<"/users/:id">      // "id"
type B = ParamOf<"/posts/:slug">    // "slug"

Bezpieczna funkcja pomocnicza dla ścieżek

Bezpieczny konstruktor: Funkcja pomocnicza przyjmuje szablony zaczynające się od "/"; pozostałe są odrzucane podczas kompilacji.

type Path<R extends string> = R extends `/${string}` ? R : never

function route<R extends Path<R>>(r: R) { return r }

const ok = route("/users/:id")    // ok
// const bad = route("users")      // error: must start with "/"

Przestrzenie nazw zdarzeń

Należy ograniczyć prefiksy (np. user:, order:) i za pomocą typów blokować nieprawidłowe nazwy pól.

type EventName = `user:${string}` | `order:${string}`

function on<E extends EventName>(name: E, cb: (data: unknown) => void) {
  // ... register listener
}

on("user:created", d => {})     // ok
// on("payment:done", d => {})  // error: not an EventName

Rozdzielanie zdarzenia

Wyodrębnij oba fragmenty za pomocą infer i przekształć je w typowane pola; nieprawidłowe formaty nie będą mogły wystąpić.

type SplitEvent<E extends string> = E extends `${infer Scope}:${infer Action}` ? { scope: Scope; action: Action } : never

type S = SplitEvent<"user:created">   // { scope: "user"; action: "created" }

type Bad = SplitEvent<"oops">          // never

Wskazówki

Wskazówki:

Ograniczenia powinny być minimalne; zbyt restrykcyjne szablony wymuszają refaktoryzację.

Reguły warto łączyć w jednym miejscu za pomocą funkcji Builder.

Nie należy zapominać o zmapowaniu bazowego string na unknown i zweryfikowaniu go w czasie działania.

Sprawdzenie przestrzeni nazw

Szybkie sprawdzenie: Który wzorzec ogranicza nazwy zdarzeń do dwóch przestrzeni nazw?

Podsumowanie

Podsumowanie: Typy literałów szablonowych ograniczają napisy tworzone według wzorców; infer służy do wyodrębniania fragmentów; bezpieczne funkcje Builder pozwalają tworzyć poprawne wartości.

Często zadawane pytania

Czy lekcja „Typowanie wzorców tekstowych (parametry tras, nazwy zdarzeń)” jest bezpłatna?

Tak — pełny tekst „Typowanie wzorców tekstowych (parametry tras, nazwy zdarzeń)” 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 3 lekcji w sumie.

Co nauczysz się w „Typowanie wzorców tekstowych (parametry tras, nazwy zdarzeń)”?

Ograniczanie ciągów znaków za pomocą typów literałów szablonowych: wzorce parametrów tras, przestrzenie nazw zdarzeń i bezpieczne konstruktory Ć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 3.

Ile czasu zajmuje lekcja „Typowanie wzorców tekstowych (parametry tras, nazwy zdarzeń)”?

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 z +/-readonly i +/-?
  2. Zmiana mapowania kluczy i typy literałów szablonowych
  3. Typowanie wzorców tekstowych (parametry tras, nazwy zdarzeń)
← Powrót do TypeScript Academy