TypeScript - Types: A Beginner's Guide

Salut là, future superзвезды кодирования! Aujourd'hui, nous plongeons dans le monde fascinant des types de TypeScript. Ne vous inquiétez pas si vous n'avez jamais écrit une ligne de code auparavant - je serai votre guide amical sur ce voyage passionnant. D'ici la fin de ce tutoriel, vous serez étonné de voir combien vous avez appris. Alors, c'est parti !

TypeScript - Types

Qu'est-ce que les types dans TypeScript ?

Avant de sauter dans le grand bain, parlons de ce qu'est un type et pourquoi c'est important. Pensez aux types comme des étiquettes que nous mettons sur nos données. tout comme nous organisons notre placard avec différentes sections pour les chemises, les pantalons et les chaussures, les types nous aident à organiser notre code et à empêcher de mettre une métaphore de chaussette dans le tiroir à chemises !

TypeScript est un supra-ensemble de JavaScript qui ajoute un typage statique optionnel. Cela signifie que nous pouvons dire exactement à TypeScript quel type de données nous manipulons, ce qui aide à attraper les erreurs avant que notre code ne soit même exécuté. C'est comme avoir un ami attentionné qui regarde par-dessus votre épaule, signalant les erreurs potentielles avant que vous ne les commettiez.

Le type Any : la carte joker de TypeScript

Commençons par le type le plus flexible de TypeScript : any. C'est comme le joker dans un jeu de cartes - il peut être n'importe quoi !

let maVariable: any = 42;
maVariable = "Bonjour, le monde !";
maVariable = true;

Dans cet exemple, maVariable peut être un nombre, puis une chaîne, puis un booléen. C'est très flexible, mais avec grand pouvoir vient une grande responsabilité. Utilisez any trop souvent revient à contredire l'intérêt d'utiliser TypeScript, donc utilisez-le avec modération !

Types intégrés : les briques de construction de TypeScript

TypeScript comes avec plusieurs types intégrés qui couvrent la plupart de nos besoins. Explorons-les un par un :

1. Nombre

let age: number = 30;
let price: number = 9.99;

Les nombres en TypeScript peuvent être des entiers ou des valeurs à virgule flottante. Pas besoin de se soucier de différents types de nombres comme dans certains autres langages !

2. Chaîne

let name: string = "Alice";
let greeting: string = `Bonjour, ${name} !`;

Les chaînes peuvent être définies avec des quotes simples, des quotes doubles ou des backticks. Les backticks permettent d'incruster des expressions en utilisant ${}.

3. Booléen

let isStudent: boolean = true;
let hasPassedExam: boolean = false;

Les booléens sont simples - ils sont soit true, soit false. Pensez à eux comme des questions oui/non pour votre code.

4. Tableau

let numbers: number[] = [1, 2, 3, 4, 5];
let fruits: Array<string> = ["pomme", "banane", "orange"];

Les tableaux peuvent contenir plusieurs valeurs du même type. Nous pouvons les définir en utilisant des crochets ou la syntaxe Array<T>.

5. Tuple

let person: [string, number] = ["Alice", 30];

Les tuples sont des tableaux avec un nombre fixe d'éléments, où chaque élément peut avoir un type différent. Ils sont comme une petite boîte organisée avec des compartiments spécifiques pour chaque article.

6. Enum

enum Color {
Red,
Green,
Blue
}
let favoriteColor: Color = Color.Blue;

Les enums nous permettent de définir un ensemble de constantes nommées. Ils sont parfaits pour représenter un ensemble fixe d'options.

7. Void

function logMessage(message: string): void {
console.log(message);
}

Void est utilisé pour indiquer qu'une fonction ne retourne rien. C'est comme envoyer une lettre sans attendre de réponse.

8. Null et Undefined

let notDefined: undefined = undefined;
let empty: null = null;

Ces types représentent l'absence d'une valeur. Ils sont comme des boîtes vides - l'une intentionnellement vide (null) et l'autre qui n'a pas encore été remplie (undefined).

Voici un tableau récapitulatif des types intégrés que nous avons couverts :

Type Description Exemple
number Valeurs numériques (entier ou à virgule flottante) let age: number = 30;
string Données textuelles let name: string = "Alice";
boolean Valeurs true ou false let isStudent: boolean = true;
array Collection de valeurs du même type let numbers: number[] = [1, 2, 3];
tuple Tableau de longueur fixe avec éléments de types spécifiques let person: [string, number] = ["Alice", 30];
enum Ensemble de constantes nommées enum Color { Red, Green, Blue }
void Absence de valeur de retour dans les fonctions function logMessage(message: string): void { ... }
null Absence intentionnelle de toute valeur d'objet let empty: null = null;
undefined Variable qui n'a pas été affectée de valeur let notDefined: undefined = undefined;

Types définis par l'utilisateur : Fabriquer vos propres outils

Maintenant que nous avons couvert les types intégrés, parlons de la création de vos propres types personnalisés. C'est là que TypeScript brille vraiment !

1. Interfaces

Les interfaces nous permettent de définir la structure d'un objet. Pensez à elles comme des plans pour des objets.

interface Person {
name: string;
age: number;
greet(): void;
}

let alice: Person = {
name: "Alice",
age: 30,
greet() {
console.log(`Bonjour, mon nom est ${this.name}`);
}
};

Dans cet exemple, nous avons défini une interface Person et créé un objet qui suit cette structure. C'est comme créer un formulaire que les gens doivent remplir - tout le monde doit fournir les mêmes informations.

2. Classes

Les classes sont un moyen de créer des composants réutilisables. Elles sont comme des moules à cookies - vous définissez la forme une fois, et puis vous pouvez faire autant de cookies (objets) que vous le souhaitez !

class Student {
name: string;
grade: number;

constructor(name: string, grade: number) {
this.name = name;
this.grade = grade;
}

study() {
console.log(`${this.name} étudie dur !`);
}
}

let bob = new Student("Bob", 10);
bob.study(); // Affiche : "Bob étudie dur !"

Ici, nous avons créé une classe Student avec des propriétés (name et grade) et une méthode (study). Nous pouvons créer autant d'étudiants que nous le souhaitons en utilisant cette classe.

3. Aliases de type

Les aliases de type nous permettent de créer de nouveaux noms pour des types. Ils sont utiles pour créer des types complexes ou donner des noms plus significatifs aux types existants.

type Point = {
x: number;
y: number;
};

let center: Point = { x: 0, y: 0 };

Dans cet exemple, nous avons créé un type Point qui représente un point dans l'espace 2D. C'est un moyen simple de regrouper des propriétés liées ensemble.

4. Types d'union

Les types d'union permettent à une valeur d'être l'un des plusieurs types. C'est comme dire : "Ce peut être soit cela, soit cela."

type Result = number | string;

function getResult(value: boolean): Result {
return value ? "Succès" : 404;
}

Ici, Result peut être soit un nombre, soit une chaîne. Cela est utile lorsque une valeur peut être de différents types en fonction de certaines conditions.

5. Types d'intersection

Les types d'intersection combinent plusieurs types en un. C'est comme dire : "Ce doit être cela ET cela."

interface Colorful {
color: string;
}

interface Circle {
radius: number;
}

type ColorfulCircle = Colorful & Circle;

let myCircle: ColorfulCircle = {
color: "rouge",
radius: 5
};

Dans cet exemple, ColorfulCircle est à la fois Colorful et un Circle. Il doit avoir à la fois une color et un radius.

Et voilà ! Nous avons couvert les bases des types de TypeScript, du flexible type any aux types intégrés et aux types définis par l'utilisateur. Souvenez-vous, les types en TypeScript sont comme vos supers pouvoirs de codage - ils vous aident à écrire un code plus propre et plus fiable, et à attraper les erreurs avant qu'elles ne deviennent des problèmes.

Alors, continuez votre voyage TypeScript, continuez à expérimenter avec ces types. Essayez de les combiner de différentes manières, et n'ayez pas peur de faire des erreurs - c'est ainsi que nous apprenons ! Avant de savoir dire, vous serez tapping away comme un pro, créant du code robuste et exempt d'erreurs.

Bonne programmation, et puissent vos types toujours être forts !

Credits: Image by storyset