Laissez TypeScript deviner les types grâce à l'inférence, et comprenez pourquoi préférer unknown au dangereux any.
Ouvrir cette leçon dans KodokonBonne nouvelle : vous n'êtes pas obligé d'annoter chaque variable. Grâce à l'inférence de type, TypeScript devine le type d'une variable à partir de la valeur que vous lui donnez. Écrire let city = "Lyon" suffit : TypeScript sait que city est un string et le protège comme si vous l'aviez annoté.
let city = "Lyon"; // type deviné : string
let count = 3; // type deviné : number
count = count + 1; // accepté
// city = 42; -> erreur : city reste un stringLe type any signifie « n'importe quoi ». Une variable any échappe à toutes les vérifications : TypeScript accepte tout, sans contrôler. C'est comme retirer la ceinture de sécurité : le code compile, mais les erreurs reviennent à l'exécution, exactement ce que TypeScript devait empêcher.
let data: any = "bonjour";
data = 42; // accepté sans broncher
// Compile, mais plante à l'exécution :
// data.toUpperCase() n'existe pas sur un nombre !Pour une valeur dont le type est réellement inconnu (une réponse de serveur, une saisie utilisateur), préférez unknown. Comme any, il accepte n'importe quelle valeur, mais il vous oblige à vérifier le type (par exemple avec typeof) avant de vous en servir. La sécurité reste donc intacte.
let value: unknown = "bonjour";
// console.log(value.toUpperCase()); -> refusé !
if (typeof value === "string") {
console.log(value.toUpperCase()); // "BONJOUR"
}