Combiner des alias de types
Fait partie de la section Introduction à TypeScript du Journey JavaScript de Coddy. Leçon 35 sur 73.
L'un des aspects les plus puissants des alias de type est leur capacité à être combinés et réutilisés pour créer des définitions de type plus sophistiquées. Au lieu de définir des types complexes à partir de zéro à chaque fois, vous pouvez les construire en composant ensemble des alias de type plus petits et ciblés.
Cette approche favorise la réutilisabilité du code et rend vos définitions de types plus faciles à maintenir. Lorsque vous devez mettre à jour un type de base, tous les types composés qui l'utilisent héritent automatiquement des modifications :
type Email = string;
type Phone = number;
type Contact = {
name: string;
email: Email;
phone: Phone;
};Vous pouvez également combiner des alias de type au sein de types d'union pour créer des structures de données flexibles. Ceci est particulièrement utile lorsqu'une propriété d'objet peut accepter différents formats :
type ContactMethod = Email | Phone;
type User = {
id: number;
preferredContact: ContactMethod;
};Cette approche compositionnelle rend votre code plus expressif et plus facile à comprendre. Plutôt que de voir des types génériques comme string ou number, les autres développeurs comprennent immédiatement l'objectif visé grâce à des noms de types significatifs comme Email et Phone.
Défi
FacileCréez un alias de type nommé Username pour le type string.
Créez un alias de type nommé UserAge pour le type number.
Créez un alias de type nommé ContactMethod qui combine Username et UserAge à l’aide d’un type union.
Créez un alias de type nommé UserProfile pour un objet possédant les propriétés suivantes :
idde typenumberdisplayNamede typeUsernamepreferredContactde typeContactMethod
Créez un alias de type nommé AdminProfile qui combine UserProfile avec un type objet supplémentaire contenant une propriété permissions de type string, à l’aide de types intersection.
Créez maintenant les variables suivantes :
- Créez une variable nommée
regularUserde typeUserProfileavec l’identifiant1, le displayName"john_doe"et le preferredContact"john_doe" - Créez une variable nommée
systemAdminde typeAdminProfileavec l’identifiant2, le displayName"admin", le preferredContact25et les permissions"full_access"
Créez une fonction nommée getContactInfo qui accepte un paramètre appelé contact de type ContactMethod et renvoie une string. Utilisez une garde de type pour vérifier le type et renvoyer :
- S’il s’agit d’une chaîne de caractères :
"Contact: [contact]" - S’il s’agit d’un nombre :
"Age: [contact]"
Affichez les résultats suivants sur des lignes séparées :
- Appelez
getContactInfoavecregularUser.preferredContactet affichez le résultat - Appelez
getContactInfoavecsystemAdmin.preferredContactet affichez le résultat - Affichez
systemAdmin.permissions
Essayez vous-même
// À FAIRE : Écrivez votre code ici
// Créer des alias de type pour Username, UserAge, ContactMethod, UserProfile et AdminProfile
// Créer les variables regularUser et systemAdmin
// Créer la fonction getContactInfo
// Afficher les sorties requisesCette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Introduction à TypeScript
1Premiers pas avec TS
Qu'est-ce que TypeScript ?Pourquoi utiliser TypeScript ?Votre premier code TypeScriptProcessus de compilation et erreursRécapitulatif : Introduction à TS4Travailler avec les fonctions
Typage des paramètres et valeurs de retourTypage des fonctions fléchéesLe type de retour 'void'Paramètres optionnels avec '?'Valeurs par défaut des paramètresTypage des paramètres RestDéfinir des types de fonctionsRécapitulatif : Créer des fonctions typées2Types fondamentaux
Types de base : str, num, booleanLe type 'any' : la porte de sortieLe type 'unknown'Travailler avec 'null' et 'undef'L'inférence de type en actionAnnotations de type explicitesRécapitulatif : Pratique des types fondamentaux5Types : Alias, Unions & Intersections
Alias de types pour les primitifsTypes d'union ('|')Travailler avec les types d'unionTypes littérauxTypes d'intersection ('&')Combiner des alias de typesRécapitulatif : Combinaisons de types avancées3Structure de données : Tableaux et Tuples
Tableaux typésModificateur 'readonly' pour les tableauxQu'est-ce qu'un tuple ?Déclaration et accès aux tuplesDéstructuration de tuplesTuples readonlyTableaux typés multidimensionnelsSpread operator avec les tableauxRécapitulatif : Tableaux et tuples6Typage des objets et interfaces
Annotations de type d'objet en ligneAlias de type pour les objetsIntroduction aux interfacesInterfaces vs Alias de typePropriétés optionnelles et ReadonlyÉtendre les interfaces et les typesAjout de méthodes aux interfacesRécapitulatif : Définir la structure des objetsEntraînez-vous par vous-même : Compilateur JavaScript en ligne