0Pricing
TypeScript Academy · Lezione

Tipi template literal: pattern di stringhe

Combini unioni di stringhe in tipi basati su pattern.

Tipi template literal: pattern di stringhe è una lezione TypeScript Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento TypeScript Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso TypeScript Academy include 4 lezioni in totale.

Benvenuto

I tipi template literal usano la sintassi dei backtick a livello di tipo per costruire tipi stringa a partire da combinazioni di altri tipi stringa.

Tipo template literal di base

Combini i tipi stringa literal con la sintassi dei template.
type Greeting = `Hello, ${string}`;
const g: Greeting = 'Hello, World'; // OK
// const bad: Greeting = 'Hi there'; // Error

Combinare le unioni

Quando un'unione viene usata in un template literal, TypeScript genera tutte le combinazioni.
type Color = 'red' | 'green' | 'blue';
type Size = 'sm' | 'lg';
type ColorSize = `${Color}-${Size}`;
// 'red-sm' | 'red-lg' | 'green-sm' | ...

Pattern per i nomi degli eventi

Un uso comune consiste nel generare nomi di eventi tipizzati a partire dalle entità.
type Entity = 'user' | 'product';
type EventName = `on${Capitalize<Entity>}Created`;
// 'onUserCreated' | 'onProductCreated'

Capitalize e altri tipi intrinseci

TypeScript fornisce Capitalize, Uncapitalize, Uppercase e Lowercase come tipi built-in per la manipolazione delle stringhe.
type T = Capitalize<'hello world'>; // 'Hello world'
type U = Uppercase<'hello'>;        // 'HELLO'
type L = Lowercase<'WORLD'>;        // 'world'

Pattern per la generazione dei getter

Usi i tipi template literal con i tipi mappati per generare i nomi dei metodi getter.
type Getters<T> = {
  [K in keyof T as `get${Capitalize<string & K>}`]: () => T[K]
};

Parametri tipizzati delle route

Estragga i parametri tipizzati delle route da una stringa che rappresenta un pattern 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;

Denominazione delle proprietà CSS

Generi nomi tipizzati per le proprietà personalizzate CSS.
type CSSVar = `--${string}`;
const color: CSSVar = '--primary-color'; // OK

Template literal nei parametri di funzione

Usi i tipi template literal per imporre vincoli ai parametri stringa.
function emit<E extends `on${string}`>(event: E): void {
  console.log('Emitting:', event);
}
emit('onClick'); // OK
// emit('click'); // Error — must start with 'on'

Estrarre parti con infer

Usi infer all'interno dei template literal per estrarre sottostringhe a livello di tipo.
type GetSuffix<T extends string> =
  T extends `${infer _Prefix}_${infer Suffix}` ? Suffix : never;
type S = GetSuffix<'user_created'>; // 'created'

Intersezione con Record

Combini i tipi template literal con Record per creare mappe tipizzate dei gestori degli eventi.
type Handlers<T extends string> = Record<`on${Capitalize<T>}`, () => void>;

Verifica rapida

A quale valore viene valutato `type R = `${string | number}-id``?

Riepilogo

I tipi template literal costruiscono tipi stringa da combinazioni usando la sintassi dei backtick. Si distribuiscono sulle unioni, funzionano con gli helper Capitalize/Uppercase e consentono potenti pattern per nomi degli eventi, parametri delle route e variabili CSS.

Domande Frequenti

La lezione «Tipi template literal: pattern di stringhe» è gratuita?

Sì — il testo completo di «Tipi template literal: pattern di stringhe» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso TypeScript Academy, passa a CoddyKit PRO. Il corso TypeScript Academy include 4 lezioni in totale.

Cosa imparerò in «Tipi template literal: pattern di stringhe»?

Combini unioni di stringhe in tipi basati su pattern. Eserciti TypeScript Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare TypeScript Academy?

Non è richiesta alcuna esperienza precedente. TypeScript Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Tipi template literal: pattern di stringhe»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione TypeScript Academy?

Sì. Ogni lezione TypeScript Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Tipi mappati: trasformazione dei tipi degli oggetti
  2. Modificatori nei tipi mappati: readonly e ?
  3. Tipi template literal: pattern di stringhe
  4. Rimappatura delle chiavi con as nei tipi mappati
← Torna a TypeScript Academy