Bibliothèque standard TypeScript : aperçu complet

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Bibliothèque standard TypeScript : aperçu complet



TypeScript est un sur-ensemble strictement typé de JavaScript qui se compile en JS classique. Cependant, sa force ne réside pas uniquement dans son système de types. La bibliothèque standard intégrée de TypeScript fournit des outils puissants pour travailler avec les types, les utilitaires et la métaprogrammation. Dans cet article, nous allons détailler les composants clés de la bibliothèque standard TypeScript, montrer des exemples d'utilisation et donner des conseils pratiques.



Qu'est-ce que la bibliothèque standard TypeScript ?

La bibliothèque standard TypeScript est un ensemble de types, d'interfaces et d'utilitaires intégrés qui sont fournis avec le compilateur. Elle comprend :

  • Les types de base (string, number, boolean, any, unknown, never, void).
  • Les types utilitaires (Partial, Required, Pick, Omit, Record et autres).
  • Les décorateurs (fonctionnalité expérimentale pour la métaprogrammation).
  • Les espaces de noms (namespace) et les modules.
  • Les types avancés (Promise, Map, Set, WeakMap, WeakSet).
  • Les types pour le DOM (inclus via lib: ["dom"]).


Les types utilitaires : le cœur de la bibliothèque

Les types utilitaires permettent de transformer des types existants sans duplication de code. Voici les plus populaires :



Partial et Required

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

// Tous les champs deviennent optionnelstype PartialUser = Partial<User>;

// Tous les champs deviennent obligatoires (s'ils étaient optionnels)type RequiredUser = Required<PartialUser>;


Pick et Omit

interface Product {  id: number;  title: string;  price: number;  description: string;}

// Sélectionne uniquement les champs souhaitéstype ProductPreview = Pick<Product, 'id' | 'title'>;

// Exclut les champs inutilestype ProductWithoutDesc = Omit<Product, 'description'>;


Record et Readonly

// Crée un objet avec des clés et valeurs définiestype UserRoles = Record<'admin' | 'user' | 'guest', string>;

// Rend tous les champs en lecture seuletype ReadonlyUser = Readonly<User>;


Travailler avec Promise et l'asynchrone

TypeScript fournit des types intégrés pour travailler avec le code asynchrone :

async function fetchData(): Promise<string> {  return "données chargées";}

// Type pour le résultat d'une Promisetype DataType = Awaited<ReturnType<typeof fetchData>>; // string


Les décorateurs : métaprogrammation en TypeScript

Les décorateurs sont des déclarations spéciales qui permettent d'annoter et de modifier les classes, méthodes, propriétés et paramètres. Ils sont activement utilisés dans les frameworks (Angular, NestJS).



Exemple de décorateur de classe

function sealed(constructor: Function) {  Object.seal(constructor);  Object.seal(constructor.prototype);}

@sealedclass Calculator { add(a: number, b: number): number { return a + b; }}


Exemple de décorateur de méthode

function log(target: any, key: string, descriptor: PropertyDescriptor) {  const original = descriptor.value;  descriptor.value = function (...args: any[]) {    console.log(`Méthode ${key} appelée avec les arguments : ${args}`);    return original.apply(this, args);  };  return descriptor;}

class UserService { @log getUser(id: number): string { return `Utilisateur ${id}`; }}


Espaces de noms (Namespaces)

Les espaces de noms aident à organiser le code et à éviter

Recommendations