Typage de motifs de chaînes (paramètres de routes, noms d’événements)
Contraignez les chaînes avec les types littéraux de chaînes : motifs de paramètres de routes, espaces de noms d’événements et constructeurs sûrs.
Typage de motifs de chaînes (paramètres de routes, noms d’événements) est une leçon TypeScript Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 3. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage TypeScript Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours TypeScript Academy comprend 3 leçons au total.
Introduction
Objectif : modéliser les formats de chaînes dans les types. Avec les types littéraux de modèle, vous pouvez imposer des motifs comme "/users/:id" ou "user:created" tout en conservant un excellent DX.
- Contraindre par préfixe ou suffixe
- Extraire des éléments avec
infer - Créer des assistants sûrs
Paramètres de route
Définissez un modèle de route simple et inférez le nom du paramètre ; utilisez un type impossible dans les cas qui ne respectent pas la règle.
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"Assistant de route sûr
Constructeur sûr : la fonction d’assistance accepte les modèles qui commencent par "/" ; les autres sont rejetés lors de la compilation.
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 "/"Espaces de noms d’événements
Limitez les préfixes (par ex. utilisateur:, commande:) et bloquez les mauvais noms de champs à l’aide des types.
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 EventNameFractionner un événement
Extrayez les deux sections avec l’inférence et convertissez-les en champs typés ; les formats invalides ne pourront jamais se produire.
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"> // neverConseils
Conseils :
Gardez les contraintes minimales ; des modèles trop stricts imposent des refactorisations.
Combinez les règles au même endroit avec des fonctions de construction.
N’oubliez pas de convertir la chaîne sous-jacente en données inconnues et de la valider lors de l’exécution.
Vérification des espaces de noms
Vérification rapide : Quel motif contraint les noms d’événements à deux espaces de noms ?
Récapitulatif
Récapitulatif : restreignez les chaînes modèles avec les types littéraux de modèle ; extrayez des parties avec l’inférence ; créez des fonctions de construction sûres.
Questions Fréquemment Posées
La leçon « Typage de motifs de chaînes (paramètres de routes, noms d’événements) » est-elle gratuite ?
Oui — le texte complet de « Typage de motifs de chaînes (paramètres de routes, noms d’événements) » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours TypeScript Academy, passe à CoddyKit PRO. Le cours TypeScript Academy comprend 3 leçons au total.
Qu'est-ce que j'apprendrai dans « Typage de motifs de chaînes (paramètres de routes, noms d’événements) » ?
Contraignez les chaînes avec les types littéraux de chaînes : motifs de paramètres de routes, espaces de noms d’événements et constructeurs sûrs. Tu pratiques TypeScript Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer TypeScript Academy ?
Aucune expérience préalable n'est requise. TypeScript Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 3.
Combien de temps prend la leçon « Typage de motifs de chaînes (paramètres de routes, noms d’événements) » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon TypeScript Academy ?
Oui. Chaque leçon TypeScript Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Types mappés avec +/-readonly et +/-?
- Remappage des clés et types littéraux de chaînes
- Typage de motifs de chaînes (paramètres de routes, noms d’événements)