TypeScript for Beginners, Part 2 Types de données de base

Après avoir lu le didacticiel d’introduction à TypeScript, vous devriez maintenant être en mesure d’écrire votre propre code TypeScript dans un environnement de développement intégré qui le prend en charge, puis de le compiler en JavaScript. Dans ce tutoriel, vous apprendrez différents types de données disponibles dans TypeScript..

JavaScript comporte sept types de données différents: Null, Undefined, Boolean, Number, String, Symbol (introduit dans ES6) et Object. TypeScript définit quelques types supplémentaires, qui seront tous traités en détail dans ce tutoriel..

Le type de données nul

Tout comme en JavaScript, le nul Le type de données dans TypeScript ne peut avoir qu'une seule valeur valide: nul. Une variable null ne peut pas contenir d'autres types de données tels que nombre et chaîne. Définir une variable sur null effacera son contenu si elle en avait. 

Rappelez-vous que lorsque le strictNullChecks le drapeau est réglé sur vrai dans tsconfig.json, seule la valeur null est assignable à des variables de type null. Cet indicateur est désactivé par défaut, ce qui signifie que vous pouvez également affecter la valeur null à des variables avec d'autres types tels que nombre ou vide.

// Avec strictNullChecks défini sur true, laissez a: null = null; // Ok let b: undefined = null; // Erreur let c: number = null; // Erreur let d: void = null; // Erreur // Avec strictNullChecks, la valeur est false, laissez a: null = null; // Ok let b: undefined = null; // Ok let c: nombre = null; // Ok let d: void = null; // D'accord

Le type de données non défini

Toute variable dont vous n'avez pas spécifié la valeur est définie sur indéfini. Cependant, vous pouvez également définir explicitement le type d'une variable sur non défini, comme dans l'exemple suivant.. 

Gardez à l'esprit qu'une variable avec type mis à indéfini ne peut avoir indéfini que sa valeur. Si la strictNullChecks l'option est définie sur faux, vous pourrez aussi assigner indéfini aux variables avec des types de nombre et de chaîne, etc..

// Avec strictNullChecks défini sur true, laissez a: undefined = undefined; // Ok let b: undefined = null; // Erreur let c: number = undefined; // Erreur let d: void = undefined; // Ok // Avec strictNullChecks, mettre à false, laissez a: undefined = undefined; // Ok let b: undefined = null; // Ok let c: number = undefined; // Ok let d: void = undefined; // D'accord

Le type de données vide

Le type de données void est utilisé pour indiquer l’absence de type pour une variable. Définition de variables pour avoir un vide type peut ne pas être très utile, mais vous pouvez définir le type de retour des fonctions qui ne renvoient rien à vide. Lorsqu'il est utilisé avec des variables, le type vide ne peut avoir que deux valeurs valides: nul et indéfini.

// Avec strictNullChecks défini sur true, laissez a: void = undefined; // Ok let b: void = null; // Erreur let c: void = 3; // Erreur let d: void = "apple"; // Erreur // Avec strictNullChecks défini sur false, laissez a: void = undefined; // Ok let b: void = null; // ok let c: void = 3; // Erreur let d: void = "apple"; // Erreur

Le type de données booléen

Contrairement à la nombre et chaîne Types de données, booléen a seulement deux valeurs valides. Vous pouvez uniquement définir sa valeur sur vrai ou faux. Ces valeurs sont beaucoup utilisées dans les structures de contrôle où un morceau de code est exécuté si une condition est vrai et un autre morceau de code est exécuté si une condition est faux

Voici un exemple très basique de déclaration de variables booléennes:

let a: boolean = true; Soit b: booléen = faux; Soit c: booléen = 23; // Erreur let d: boolean = "blue"; // Erreur

Le type de données numérique

le nombre Le type de données est utilisé pour représenter les nombres entiers et les valeurs à virgule flottante en JavaScript, ainsi que TypeScript. Cependant, vous devez vous rappeler que tous les nombres sont représentés en interne sous forme de valeurs à virgule flottante. Les nombres peuvent également être spécifiés en tant que littéraux hexadécimaux, octaux ou binaires. N'oubliez pas que des représentations octales et binaires ont été introduites dans ES6, ce qui peut entraîner une sortie de code JavaScript différente en fonction de la version que vous ciblez.. 

Il existe également trois autres valeurs symboliques spéciales qui relèvent de la nombre type:  +Infini-Infini, et NaN. Voici quelques exemples d'utilisation du nombre type.

// Avec strictNullChecks défini sur true, laissez a: number = undefined; // Erreur let b: nombre = null; // Erreur let c: nombre = 3; Soit d: nombre = 0b111001; // binaire let e: number = 0o436; // Octal let f: nombre = 0xadf0d; // hexadécimal let g: nombre = "chat"; // Erreur // Avec strictNullChecks défini sur false, laissez a: number = undefined; // Ok let b: nombre = null; // ok let c: nombre = 3; Soit d: nombre = 0b111001; // binaire let e: number = 0o436; // Octal let f: nombre = 0xadf0d; // hexadécimal let g: nombre = "chat"; // Erreur

Lorsque la version cible est définie sur ES6, le code ci-dessus est compilé dans le code JavaScript suivant:

laissez a = undefined; laissez b = null; Soit c = 3; soit d = 0b111001; Soit e = 0o436; soit f = 0xadf0d; Soit g = "chat";

Notez que les variables JavaScript sont toujours déclarées en utilisant laisser, qui a été introduit dans ES6. Vous ne voyez pas non plus de message d'erreur lié à la type de variables différentes car le code JavaScript n'a aucune connaissance des types utilisés dans le code TypeScript.

Si la version cible est définie sur ES5, le code TypeScript que nous avons écrit précédemment sera compilé en JavaScript suivant:

var a = non défini; var b = null; var c = 3; var d = 57; var e = 286; var f = 0xadf0d; var g = "chat";

Comme vous pouvez le constater, cette fois, toutes les occurrences du laisser le mot clé a été changé en var. Notez également que les nombres octaux et binaires ont été modifiés en leurs formes décimales.

Le type de données de chaîne

Le type de données string est utilisé pour stocker des informations textuelles. JavaScript et TypeScript utilisent des guillemets doubles (") ainsi que des guillemets simples (') pour entourer vos informations textuelles sous forme de chaîne. Une chaîne peut contenir zéro ou plusieurs caractères encadrés par des guillemets..

// Avec strictNullChecks défini sur true, laissez a: string = undefined; // Erreur let b: string = null; // Erreur let c: string = ""; soit d: string = "y"; let e: string = "building"; Soit f: chaîne = 3; // Erreur let g: string = "3"; // Avec strictNullChecks défini sur false, laissez a: string = undefined; // Ok let b: string = null; // Ok, laissez c: string = ""; soit d: string = "y"; let e: string = "building"; Soit f: chaîne = 3; // Erreur let g: string = "3";

TypeScript prend également en charge les chaînes de modèle ou les littéraux de modèle. Ces littéraux de modèles vous permettent d'incorporer des expressions dans une chaîne. Les littéraux de modèle sont entourés par le caractère de coche arrière (') au lieu de guillemets doubles et de guillemets simples qui entourent des chaînes régulières. Ils ont été introduits dans ES6. Cela signifie que vous obtiendrez une sortie JavaScript différente en fonction de la version que vous ciblez. Voici un exemple d'utilisation de littéraux de modèle dans TypeScript:

let e: string = "building"; Soit f: nombre = 300; let phrase: string = 'Le $ e en face de mon bureau a une hauteur de $ f pieds.';

Lors de la compilation, vous obtiendrez le code JavaScript suivant:

// Sortie dans ES5 var e = "building"; var f = 300; var sentence = "Le" + e + "situé devant mon bureau correspond à" + f + "pieds hauts."; // Sortie dans ES6 let e = "building"; soit f = 300; let sentence = 'Le $ e devant mon bureau mesure $ f pieds de haut.';

Comme vous pouvez le constater, le littéral de modèle a été remplacé par une chaîne normale dans ES5. Cet exemple montre comment TypeScript vous permet d'utiliser les dernières fonctionnalités de JavaScript sans vous soucier de la compatibilité..

Les types de données tableau et tuple

Vous pouvez définir des types de tableaux de deux manières différentes en JavaScript. Dans la première méthode, vous spécifiez le type d’éléments de tableau suivi de [] qui dénote un tableau de ce type. Une autre méthode consiste à utiliser le type de tableau générique Tableau. L'exemple suivant montre comment créer des tableaux avec ces deux méthodes. En précisant nul ou indéfini comme l'un des éléments produira des erreurs lorsque le strictNullChecks le drapeau est vrai.

// Avec strictNullChecks défini sur false, laissez a: number [] = [1, 12, 93, 5]; let b: string [] = ["a", "abricot", "mangue"]; soit c: nombre [] = [1, "pomme", "pomme de terre"]; // Erreur let d: Array = [null, undefined, 10, 15]; let e: Array = ["pie", null, ""]; // Avec strictNullChecks défini sur true, laissez a: number [] = [1, 12, 93, 5]; let b: string [] = ["a", "abricot", "mangue"]; soit c: nombre [] = [1, "pomme", "pomme de terre"]; // Erreur let d: Array = [null, undefined, 10, 15]; // Erreur let e: Array = ["pie", null, ""]; // Erreur

Le type de données tuple vous permet de créer un tableau dans lequel le type d'un nombre fixe d'éléments est connu à l'avance. Le type du reste des éléments ne peut être qu'un des types que vous avez déjà spécifiés pour le tuple. Voici un exemple qui le clarifiera:

let a: [nombre, chaîne] = [11, "lundi"]; let b: [nombre, chaîne] = ["lundi", 11]; // Erreur let c: [nombre, chaîne] = ["a", "monkey"]; // Erreur let d: [nombre, chaîne] = [105, "hibou", 129, 45, "cat"]; Soit e: [nombre, chaîne] = [13, "bat", "spiderman", 2]; e [13] = "éléphant"; e [15] = faux; // Erreur

Pour tous les tuples de notre exemple, nous avons défini le type du premier élément à un nombre et le type du deuxième élément à un chaîne. Puisque nous avons seulement spécifié un type pour les deux premiers éléments, le reste peut être une chaîne ou un nombre. Créer des tuples b et c entraîne une erreur car nous avons essayé d'utiliser une chaîne comme valeur pour le premier élément alors que nous avions mentionné que le premier élément serait un nombre.

De même, nous ne pouvons pas définir la valeur d'un élément du tuple sur faux après avoir spécifié qu'il ne contiendra que des chaînes et des nombres. C'est pourquoi la dernière ligne génère une erreur.

Le type de données Enum

le enum Le type de données est présent dans de nombreux langages de programmation tels que C et Java. JavaScript a été manquant, mais TypeScript vous permet de créer et de travailler avec des énumérations. Si vous ne savez pas quoi enums sont, ils vous permettent de créer une collection de valeurs liées en utilisant des noms mémorables.

enum Animaux chat, lion, chien, vache, singe let c: Animals = Animals.cat; console.log (Animaux [3]); // cow console.log (Animals.monkey); // 4

Par défaut, la numérotation des énumérations commence à 0, mais vous pouvez également définir une valeur différente pour le premier membre ou tout autre membre manuellement. Cela modifiera la valeur de tous les membres qui les suivront en augmentant leur valeur de 1. Vous pouvez également définir toutes les valeurs manuellement dans un champ. enum.

enum Animaux cat = 1, lion, chien = 11, vache, singe soit c: Animaux = Animaux.cat; console.log (Animaux [3]); // non défini console.log (Animals.monkey); // 13

Contrairement à l'exemple précédent, la valeur de Animaux [3] est indéfini cette fois. En effet, la valeur 3 aurait été attribuée à dog, mais nous avons explicitement défini sa valeur sur 11. La valeur pour vache reste à 12 et non 3, car la valeur est supposée être supérieure à la valeur du dernier membre.

Les types quelconques et jamais

Supposons que vous écrivez un programme dans lequel la valeur d'une variable est déterminée par les utilisateurs ou par le code écrit dans une bibliothèque tierce. Dans ce cas, vous ne pourrez pas définir correctement le type de cette variable. La variable peut être de n'importe quel type, comme une chaîne, un nombre ou un booléen. Ce problème peut être résolu en utilisant le tout type. Ceci est également utile lorsque vous créez des tableaux avec des éléments de types mélangés..

laissez a: any = "apple"; Soit b: any = 14; soit c: any = false; let d: any [] = ["porte", "cuisine", 13, faux, nul]; b = "personnes";

Dans le code ci-dessus, nous avons pu attribuer un numéro à b puis changez sa valeur en chaîne sans obtenir d'erreur car le type tout peut accepter tous les types de valeurs.

le jamais type est utilisé pour représenter des valeurs qui ne sont jamais supposées se produire. Par exemple, vous pouvez affecter jamais comme le type de retour d'une fonction qui ne retourne jamais. Cela peut se produire lorsqu'une fonction génère toujours une erreur ou lorsqu'elle est bloquée dans une boucle infinie.

laissez a: jamais; // Ok, laissez b: jamais = faux; // Erreur let c: never = null; // Erreur let d: never = "lundi"; // Fonction d'erreur bloquée (): never while (true)  

Dernières pensées

Ce tutoriel vous a présenté tous les types disponibles dans TypeScript. Nous avons appris comment l'attribution d'un type de valeur différent à une variable entraîne des erreurs dans TypeScript. Cette vérification peut vous aider à éviter beaucoup d’erreurs lors de l’écriture de programmes volumineux. Nous avons également appris à cibler différentes versions de JavaScript..

Si vous recherchez des ressources supplémentaires à étudier ou à utiliser dans votre travail, consultez ce que nous avons à votre disposition sur le marché Envato..

Dans le prochain tutoriel, vous en apprendrez plus sur les interfaces dans TypeScript. Si vous avez des questions concernant ce didacticiel, faites-le moi savoir dans les commentaires..