Les types en TS
Les types les plus importants
TypeScript, tout comme JavaScript, prend en charge plusieurs types de données qui sont considérés comme des types primitifs. Voici les plus importants :
Type | Description | Exemple |
---|---|---|
number | Représente des nombres (entiers et flottants). | let age: number = 30; |
string | Représente des chaînes de caractères. | let name: string = 'John'; |
boolean | Représente une valeur de vérité (true ou false ). | let isActive: boolean = true; |
null | Indique l'absence de valeur. | let emptyValue: null = null; |
undefined | Indique qu'une variable n'a pas encore été assignée. | let notAssigned: undefined; |
any | Permet de désactiver la vérification des types pour une variable (à éviter ). | let something: any = 5; something = "hello"; somthing=true; |
BigInt | Représente des entiers de taille arbitraire. | let bigInt: BigInt = 123456789n; |
Exemple pour comprendre la différence entre undefined
et any
:
const getLengthWithUndefined = (input: string | undefined): number => {
// Vérifie si l'input est undefined avant d'essayer de l'utiliser
if (input === undefined) {
return 0; // Gère le cas où input est undefined
}
return input.length; // Safe, car on sait que `input` est une chaîne
};
// Appels de la fonction
console.log(getLengthWithUndefined("Hello")); // Affiche 5
console.log(getLengthWithUndefined(undefined)); // Affiche 0
console.log(getLengthWithAny(123)); // Pas aurorisé par TS
console.log(getLengthWithAny({})); // Pas aurorisé par TS
// Exemple avec `any`
function getLengthWithAny(input: any): number {
// Ne vérifie pas si `input` est une chaîne ou undefined
return input.length; // Cela peut causer une erreur si input n'est pas une chaîne
}
// Appels de la fonction
console.log(getLengthWithAny("Hello")); // Affiche 5
console.log(getLengthWithAny(undefined)); // Provoque une erreur à l'exécution: "Cannot read properties of undefined (reading 'length')"
console.log(getLengthWithAny(123)); // Provoque une erreur à l'exécution: "Cannot read properties of undefined (reading 'length')"
console.log(getLengthWithAny({})); // Provoque une erreur à l'exécution: "Cannot read properties of undefined (reading 'length')"
À Retenir
undefined
est plus sûr dans le sens où il force à gérer les cas où une valeur n'est pas définie.any
est moins sûr car il peut contenir n'importe quel type, ce qui peut conduire à des erreurs. Il ne faut pas l'utiliser dans le cadre de ce cours.- une variable peut avoir plusieurs types
let value: string | number | boolean;
Exercice
Convertir le code ci-dessous au format type script pour que les 7 appels de fonction soient toujorus possibles.
// Fonction qui calcule la somme de deux nombres ou les concatène si c'est des chaînes
const add = (a, b) => {
return a + b;
};
// Fonction qui vérifie si une chaîne contient une autre chaîne
const contains = (str, substr) => {
return str.includes(substr);
};
// Fonction qui prend un nombre ou une chaîne et retourne sa longueur
const getLength = (input) => {
return input.length;
};
// Fonction qui divise deux nombres mais retourne null si le diviseur est 0
const divide = (a, b) => {
if (b === 0) {
return null;
}
return a / b;
};
// Test des fonctions
console.log(add(5, 10)); // 15
console.log(add(5, "10")); // 510
console.log(add("Hello", "World")); // "HelloWorld"
console.log(contains("TypeScript", "Type")); // true
console.log(getLength("Hello")); // 5
console.log(getLength([1, 2, 3])); // 3
console.log(divide(10, 2)); // 5
console.log(divide(10, 0)); // null