Cum să creați și să utilizați tipuri de utilitar TypeScript

TypeScript oferă un set de tipuri de utilitate care facilitează transformarea și gestionarea tipurilor existente. Aceste tipuri de utilitare încorporate permit dezvoltatorilor să manipuleze tipuri în diferite moduri, ajutând la simplificarea codului și la evitarea repetății. Acest ghid explorează unele dintre cele mai comune tipuri de utilitare și cum pot fi create și utilizate într-un proiect TypeScript.

Ce sunt tipurile de utilitare TypeScript?

Tipurile de utilitate din TypeScript sunt tipuri predefinite care ajută la transformarea altor tipuri. Ele pot fi folosite pentru a crea noi tipuri bazate pe cele existente fie prin alegerea, omiterea sau modificarea proprietăților. Ele joacă un rol esențial în menținerea unui cod curat și reutilizabil.

Tipuri de utilitare TypeScript utilizate frecvent

Iată câteva dintre cele mai frecvent utilizate tipuri de utilitare TypeScript:

  • Parțial<T> – Face ca toate proprietățile de tip T să fie opționale.
  • Necesar<T> – Toate proprietățile de tip T sunt necesare.
  • Numai în citire<T> – Face ca toate proprietățile de tip T să fie doar în citire.
  • Alege<T, K> – Alege un set de proprietăți K din tipul T.
  • Omite<T, K> – elimină un set de proprietăți K din tipul T.
  • Înregistrare<K, T> – Construiește un tip de obiect cu chei de tip K și valori de tip T.

Exemplu: Utilizarea parțială<T>

Tipul de utilitar Parțial face ca toate proprietățile unei interfețe să fie opționale. Iată cum poate fi folosit:

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

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

updateUser({ name: "John" });

În acest exemplu, updateUser acceptă un argument de tip Parțial<User>, adică doar unele dintre proprietățile Interfața utilizator este necesară.

Exemplu: Folosind Pick<T, K>

Tipul de utilitar Pick permite selectarea unui subset de proprietăți dintr-un tip:

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

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

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

Aici, Pick<User, “name” | “email”> creează un nou tip UserContactInfo cu numai numele și Proprietățile e-mail din interfața inițială de Utilizator.

Exemplu: Utilizarea Omitere<T, K>

Tipul de utilitar Omite elimină proprietățile specificate dintr-un tip:

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

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

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

În acest exemplu, tipul UserWithoutEmail este creat prin omiterea proprietății e-mail din interfața Utilizator.

Crearea de tipuri de utilitare personalizate

De asemenea, tipurile de utilitare personalizate pot fi create utilizând caracteristicile avansate ale TypeScript, cum ar fi tipurile condiționate, tipurile mapate și multe altele. Iată un exemplu simplu de tip de utilitar personalizat care face ca toate proprietățile să fie opționale:

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

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

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

Acest tip personalizat MyPartial funcționează similar cu tipul de utilitar Parțial încorporat în TypeScript.

Concluzie

Tipurile de utilitate TypeScript sunt o caracteristică esențială pentru a lucra cu tipuri într-un mod flexibil și reutilizabil. Prin valorificarea acestor tipuri de utilitate, codul poate deveni mai concis și mai ușor de întreținut. Indiferent dacă folosești tipuri de utilitare încorporate, cum ar fi Parțial, Alege și Omite sau creează altele personalizate, acestea îmbunătățește semnificativ sistemul de tipări TypeScript.