Sådan opretter og bruger du TypeScript-værktøjstyper

TypeScript giver et sæt værktøjstyper, der gør det nemmere at transformere og administrere eksisterende typer. Disse indbyggede hjælpetyper giver udviklere mulighed for at manipulere typer på forskellige måder, hvilket hjælper med at forenkle koden og undgå gentagelser. Denne vejledning udforsker nogle af de mest almindelige hjælpetyper, og hvordan de kan oprettes og bruges i et TypeScript-projekt.

Hvad er TypeScript-værktøjstyper?

Utility-typer i TypeScript er foruddefinerede typer, der hjælper med at transformere andre typer. De kan bruges til at oprette nye typer baseret på eksisterende ved enten at vælge, udelade eller ændre egenskaber. De spiller en væsentlig rolle i at opretholde ren, genbrugelig kode.

Almindelig anvendte TypeScript-værktøjstyper

Her er nogle af de mest brugte TypeScript-værktøjstyper:

  • Delvis<T> – Gør alle egenskaber af typen T valgfri.
  • Påkrævet<T> – Gør alle egenskaber af typen T påkrævet.
  • Skrivebeskyttet<T> – Gør alle egenskaber af typen T skrivebeskyttet.
  • Pick<T, K> – Vælger et sæt egenskaber K fra typen T.
  • Udelad<T, K> – Fjerner et sæt egenskaber K fra typen T.
  • Record<K, T> – Konstruerer en objekttype med nøgler af typen K og værdier af typen T.

Eksempel: Brug af delvis<T>

Hjælpetypen Partial gør alle egenskaber for en grænseflade valgfri. Sådan kan det bruges:

interface User {
  name: string;
  age: number;
  email: string;
}

const updateUser = (user: Partial<User>) => {
  // Update logic
};

updateUser({ name: "John" });

I dette eksempel accepterer updateUser et argument af typen Partial<User>, hvilket betyder, at kun nogle af egenskaberne for User-grænsefladen er nødvendige.

Eksempel: Brug af Pick<T, K>

Hjælpetypen Pick gør det muligt at vælge et undersæt af egenskaber fra en type:

interface User {
  name: string;
  age: number;
  email: string;
}

type UserContactInfo = Pick<User, "name" | "email">;

const contactInfo: UserContactInfo = {
  name: "John",
  email: "john@example.com"
};

Her opretter Pick<User, “name” | “email”> en ny type UserContactInfo med kun egenskaberne name og email fra den originale User interface.

Eksempel: Brug af Udelad<T, K>

Hjælpetypen Udlad fjerner specificerede egenskaber fra en type:

interface User {
  name: string;
  age: number;
  email: string;
}

type UserWithoutEmail = Omit<User, "email">;

const user: UserWithoutEmail = {
  name: "John",
  age: 30
};

I dette eksempel oprettes BrugerUdenEmail-typen ved at udelade egenskaben email fra Bruger-grænsefladen.

Oprettelse af brugerdefinerede hjælpeprogrammer

Brugerdefinerede hjælpetyper kan også oprettes ved hjælp af TypeScripts avancerede typefunktioner som betingede typer, tilknyttede typer og mere. Her er et simpelt eksempel på en brugerdefineret hjælpetype, der gør alle egenskaber valgfrie:

type MyPartial<T> = {
  [P in keyof T]?: T[P];
};

interface User {
  name: string;
  age: number;
  email: string;
}

const user: MyPartial<User> = {
  name: "Alice"
};

Denne brugerdefinerede MyPartial-type fungerer på samme måde som TypeScripts indbyggede Partial-hjælpetype.

Konklusion

TypeScript-værktøjstyper er en væsentlig funktion til at arbejde med typer på en fleksibel og genbrugelig måde. Ved at udnytte disse hjælpetyper kan kode gøres mere kortfattet og vedligeholdelig. Uanset om du bruger indbyggede hjælpetyper som Partial, Pick og Omit eller opretter brugerdefinerede, forbedrer de TypeScripts typesystem markant.