TypeScript Academy · Lektion

Standardtypeparametre

Angiv reservetyper, når der ikke gives et argument

Lektion 4 af 413 trin

Standardtypeparametre er en gratis TypeScript Academy-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i TypeScript Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. TypeScript Academy-kurset indeholder 4 lektioner i alt.

Velkommen

Standardtypeparametre giver en reservetype, når den kaldende kode ikke angiver et typeargument. De gør generiske API'er nemmere at bruge.

Standardsyntaks

Tilføj `= DefaultType` efter typeparameternavnet for at angive en standardværdi.
interface Container<T = string> {
  value: T;
}
const c: Container = { value: 'hello' }; // T defaults to string
const n: Container<number> = { value: 42 };

Standardværdier i generiske funktioner

Funktionstypeparametre kan også have standardværdier, selv om det er mindre almindeligt, fordi TypeScript normalt udleder typen.
function createList<T = string>(): T[] { return []; }
const list = createList(); // T is string by default

Standardværdier med begrænsninger

En typeparameter kan både have en begrænsning og en standardværdi. Standardværdien skal opfylde begrænsningen.
interface Event<T extends object = Record<string, unknown>> {
  type: string;
  payload: T;
}

Standardværdier i React-lignende komponenter

Standardtypeparametre er almindelige i generiske typer i brugergrænsefladebiblioteker til komponentegenskaber.
interface SelectProps<T = string> {
  options: T[];
  value: T;
  onChange: (val: T) => void;
}

Flere standardværdier

Flere typeparametre kan hver især have standardværdier.
type Pair<A = string, B = number> = { first: A; second: B };
const p: Pair = { first: 'hello', second: 42 }; // A=string, B=number

Efterfølgende typeparametre skal også have standardværdier

Hvis du vil bruge en standardværdi for en senere typeparameter, skal alle tidligere parametre uden standardværdier angives.
type Map<K = string, V = unknown> = Record<K extends string ? K : string, V>;
const m: Map = {}; // K=string, V=unknown by default

Når TypeScript ignorerer standardværdien

Hvis TypeScript kan udlede typeargumentet ud fra konteksten, bruger det den udledte type, selv om der er angivet en standardværdi.
function wrap<T = string>(val: T): T { return val; }
const n = wrap(42); // T is number, not string (inferred)

Eksplicitte tilsidesættelser

Når du angiver et eksplicit typeargument, tilsidesætter det altid standardværdien.
interface Box<T = string> { item: T; }
const numBox: Box<number> = { item: 100 }; // T explicitly number

Standardværdier i generiske klasser

Generiske klasser kan også have standardtypeparametre.
class Stack<T = unknown> {
  private items: T[] = [];
  push(item: T) { this.items.push(item); }
  pop(): T | undefined { return this.items.pop(); }
}

Standardværdier gør generiske biblioteker nemmere at bruge

Forfattere af biblioteker bruger standardtypeparametre til at reducere den gentagne kode, som kaldende kode skal skrive i almindelige anvendelsestilfælde.

Hurtigt tjek

Givet `interface Box`, hvad er typen for `.value` i `const b: Box = { value: 99 }`?

Opsummering

Standardtypeparametre (T = DefaultType) giver reservetyper, når den kaldende kode ikke angiver en type. De er mest nyttige i grænseflader, klassedefinitioner og biblioteks-API'er, fordi de reducerer den gentagne kode hos den kaldende kode.
Gratis at komme i gang

Lær TypeScript med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
101
Lektioner
352

Ofte stillede spørgsmål

Er lektionen “Standardtypeparametre” gratis?

Ja — hele teksten til “Standardtypeparametre” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af TypeScript Academy-kurset, skal du opgradere til CoddyKit PRO. TypeScript Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Standardtypeparametre”?

Angiv reservetyper, når der ikke gives et argument Du øver dig i TypeScript Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på TypeScript Academy?

Der kræves ingen tidligere erfaring. TypeScript Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.

Hvor lang tid tager lektionen “Standardtypeparametre”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne TypeScript Academy-lektion?

Ja. Alle TypeScript Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Generiske funktioner: typeparametre
  2. Generiske interfaces og typealiaser
  3. Generiske begrænsninger med extends
  4. Standardtypeparametre
← Tilbage til TypeScript Academy