58 entrées · 5 catégories
Documentation TypeScript
Les types de base, les interfaces, les unions, les génériques et tous les types utilitaires. À chaque exemple, vous voyez le type que le compilateur déduit.
58 entrées
Types de base
Types primitifs, tableaux, tuples, enums, any, unknown et never.
- string, number, booleanLes types primitifs de base : texte, nombres et valeurs booléennes.
- Tableaux : number[] et Array<T>Les types de tableaux, où tous les éléments ont le même type.
- TuplesDes tableaux de longueur fixe où chaque position a son propre type.
- enumUn ensemble nommé de valeurs constantes, numériques ou textuelles.
- anyLe type qui désactive la vérification : la valeur peut être n’importe quoi.
- unknownL’équivalent sûr de any : une valeur de type inconnu qu’il faut d’abord vérifier.
- neverLe type d’une valeur qui ne se produit jamais : des fonctions qui ne se terminent pas normalement, et des cas impossibles.
- voidLe type renvoyé par les fonctions qui ne renvoient rien.
- null et undefinedLes types pour l’absence de valeur, contrôlés par strictNullChecks.
- Types littérauxDes types qui n’autorisent que des valeurs précises, par ex. "easy" | "hard".
- Types d’objetsUne description de la forme d’un objet : quels champs il a et de quel type.
- Types de fonctionsTyper les paramètres, la valeur de retour et les fonctions elles-mêmes en tant que valeurs.
- Inférence de typeLe compilateur détermine automatiquement les types sans que vous écriviez d’annotations.
Interfaces et classes
Décrire la forme des objets, l’héritage et les modificateurs d’accès.
- interfaceUne description nommée de la forme d’un objet, que vous pouvez étendre et fusionner.
- typeUn alias de type : un nom pour n’importe quel type, y compris les unions, les tuples et les types complexes.
- Propriétés optionnelles (?)Des propriétés qui peuvent, mais ne doivent pas obligatoirement, apparaître dans un objet.
- readonlyUn modificateur qui bloque la modification d’un champ après la création de l’objet.
- Signature d’indexUne description des objets à clés arbitraires et à valeurs d’un seul type.
- extends (interfaces)Étendre une interface avec de nouveaux champs, à partir d’une interface existante.
- implementsUne déclaration indiquant qu’une classe respecte le contrat décrit par une interface.
- public, private, protectedDes modificateurs d’accès qui déterminent d’où les champs et méthodes d’une classe peuvent être utilisés.
- abstract classUne classe de base que vous ne pouvez pas créer directement, avec des méthodes à compléter par ses descendants.
- Surcharges de fonctionPlusieurs signatures pour une seule fonction : le type du résultat dépend des arguments avec lesquels vous l’appelez.
- DécorateursDes fonctions attachées avec un signe @ à des classes et à leurs membres, qui étendent ou modifient leur comportement.
- declare et les fichiers .d.tsDécrire les types de quelque chose qui existe hors de votre code TypeScript : variables globales, bibliothèques JavaScript et modules.
Génériques et types avancés
Types paramétrés, keyof, types conditionnels, mappés et littéraux de gabarit.
- Génériques <T>Types et fonctions avec un paramètre de type, qui fonctionnent pour plusieurs types sans perdre en précision.
- Contraintes génériques (extends)Exiger qu’un paramètre de type respecte une forme précise.
- keyofCrée une union des noms de clés d’un type d’objet donné.
- Types indexés T[K]Récupère le type d’un champ depuis un autre type, comme on lirait une propriété d’un objet.
- Types conditionnelsDes types choisis selon une condition : T extends U ? X : Y.
- inferExtrait un type de l’intérieur d’un autre type, dans un type conditionnel.
- Types mappésCréent un nouveau type d’objet en transformant chaque clé d’un autre type.
- Types littéraux de gabaritDes types textuels construits à partir de gabarits, comme `${A}-${B}`.
- Paramètres de type par défautLa valeur que prend un paramètre de type quand il n’est ni fourni ni déduit.
Types utilitaires
Les types intégrés qui transforment d’autres types : Partial, Pick, Omit et les autres.
- Partial<Type>Crée un type dans lequel toutes les propriétés sont optionnelles.
- Required<Type>Crée un type dans lequel toutes les propriétés sont obligatoires.
- Readonly<Type>Crée un type dans lequel toutes les propriétés sont en lecture seule.
- ReadonlyArray<Type>Un tableau en lecture seule : sans push, sort ni affectation par index.
- Pick<Type, Keys>Crée un type contenant uniquement les propriétés sélectionnées d’un autre type.
- Omit<Type, Keys>Crée un type sans les propriétés sélectionnées d’un autre type.
- Record<Keys, Type>Crée un type d’objet avec des clés données, où chaque valeur a le même type.
- Exclude<UnionType, ExcludedMembers>Retire d’une union les types compatibles avec un type donné.
- Extract<Type, Union>Garde dans une union uniquement les types compatibles avec un type donné.
- NonNullable<Type>Retire null et undefined d’un type.
- ReturnType<Type>Récupère le type de la valeur renvoyée par une fonction.
- Parameters<Type>Récupère les types des paramètres d’une fonction sous forme de tuple.
- Awaited<Type>Récupère le type de la valeur que produit un await sur une promesse.
- InstanceType<Type>Récupère le type de l’objet créé par le constructeur d’une classe.
- ConstructorParameters<Type>Récupère les types des paramètres du constructeur d’une classe sous forme de tuple.
- Uppercase, Lowercase, Capitalize, UncapitalizeTypes intégrés qui changent la casse des lettres dans les types textuels, par ex. "gold" en "GOLD".
- NoInfer<Type>Bloque l’inférence d’un paramètre de type à partir d’un endroit donné, pour que d’autres arguments déterminent le type.
Comparaisons
Les différences entre des types et des constructions proches, et quand choisir lequel.
- interface vs typeinterface décrit la forme d’un objet et fusionne avec une déclaration du même nom, tandis que type est un alias pour tout type, y compris les unions et les tuples.
- any vs unknownany désactive la vérification des types et autorise tout, tandis que unknown accepte aussi toute valeur, mais exige une vérification de type avant de l’utiliser.
- enum vs unionenum crée un ensemble de constantes, visible aussi à l’exécution comme un objet, alors qu’une union de littéraux n’est qu’un type, plus léger et sans code JavaScript.
- Pick vs OmitPick<Type, Keys> sélectionne seulement les champs donnés d’un type, et Omit<Type, Keys> copie tous les champs sauf ceux donnés.
- as vs satisfiesas dit au compilateur de faire confiance à votre type sans rien vérifier, tandis que satisfies vérifie la conformité au type et garde le type exact déduit de la valeur.
- extends vs implementsextends hérite des champs et du code d’une classe de base, tandis que implements exige seulement les méthodes et les champs de l’interface, sans en reprendre le code.
- void vs nevervoid signifie qu’une fonction ne renvoie pas de valeur utile, tandis que never signifie qu’une fonction ne revient jamais : elle lève une erreur ou tourne indéfiniment.