Inférence de type
Le compilateur détermine automatiquement les types sans que vous écriviez d’annotations.
Exemple
#const lessons = [
{ title: 'HTML', minutes: 12 },
{ title: 'CSS', minutes: 15 }
]
// type : { title: string; minutes: number }[]
const totalMinutes = lessons.reduce((sum, l) => sum + l.minutes, 0)
// type : number
const titles = lessons.map((l) => l.title.toUpperCase())
// type : string[]
console.log(totalMinutes, titles)27 ['HTML', 'CSS']
Définition et utilisation
#TypeScript détermine lui-même le type à de nombreux endroits, en observant la valeur. La déclaration let count = 0 donne une variable de type number, et une fonction qui renvoie a + b pour deux nombres a un type de retour déduit number.
Grâce à cela, le code n’est pas surchargé d’annotations. Une bonne pratique consiste à typer les frontières : les paramètres de fonctions, les API publiques, les données venant de l’extérieur, et à laisser le reste à l’inférence.
Vous voyez le type déduit dans l’éditeur en survolant la variable avec le curseur. S’il est différent de ce que vous attendiez, ajoutez une annotation, pour que le compilateur signale l’écart à l’endroit où il apparaît.
Syntaxe
#let count = 0
// TypeScript infère : numberPlus d’exemples
#const ids = []
// type : any[] (sans strict) ou never[] dans certains contextes
const scores: number[] = []
scores.push(90)
console.log(scores)[90]
Bonnes pratiques
#- Donnez un type explicite aux tableaux et objets vides que vous remplissez plus tard.
- Survolez les variables dans l’éditeur avec le curseur. C’est la façon la plus rapide de voir ce que le compilateur a déduit.
Entrées associées
#- string, number, booleanLes types primitifs de base : texte, nombres et valeurs booléennes.
- Types littérauxDes types qui n’autorisent que des valeurs précises, par ex. "easy" | "hard".
- Types de fonctionsTyper les paramètres, la valeur de retour et les fonctions elles-mêmes en tant que valeurs.
- NoInfer<Type>Bloque l’inférence d’un paramètre de type à partir d’un endroit donné, pour que d’autres arguments déterminent le type.
Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.