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,Recordet 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>>; // stringLes 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
Aussi dans la bibliothèque
Surveillance des applications Go : bibliothèques et outils
Traitement d'images en Rust : redimensionnement et recadrage avec la bibliothèque image
Actors Swift : guide complet avec exemples concrets
Tokio pour Rust : guide complet avec exemples