Inference
L'inférence de type est l'un des points les plus forts et les plus sous-estimés de TypeScript. Il s'agit ici de déduire implicitement le typage et faire gagner du temps de développement et de refactoring sans perdre en rigueur.
L'idée de TypeScript est en quelque sorte de typer au minimum et de laisser le "transpiler" gérer le reste.
let userName = 'Foo';
userName = 10; // error TS2322: Type '10' is not assignable to type 'string'.Le type de la variable userName est donc déduit à l'initialisation de la variable et il n'est donc pas nécessaire de la typer explicitement.
Quelques exemples
const getWeather = (city) => {
if (city == null) {
throw new Error(`D'OH!`);
}
return {
rainProbability: 0,
temperature: 30
};
};
let weather = getWeather('Lyon');
// error TS2322: Type '"🔥 Wishtack is cool ! 🔥"' is not assignable
// to type '{ rainProbability: number; temperature: number; }'.
weather = '🔥 Wishtack is cool ! 🔥';... ou encore :
... au lieu de :
... ou :
... au lieu de :
Inférence et callbacks
Dans le dernier exemple du chapitre sur les interfaces, nous avons implicitement profiter de l'inférence de type.
Toute la puissance de TypeScript repose sur cet art de typer le moins possible mais au bon endroit pour en profiter au maximum.
La signature des fonctions de "callback" que vous attendez est l'un des éléments les plus stratégiques à typer.
Et si votre IDE est sympa



Mis à jour