Assertion de types
Parfois, vous aurez l'information sur un type que TypeScript ignore. Vous pouvez utiliser l'assertion de types dans ces situations.
Par exemple,
const courrielInput = document.getElementById('courriel');
console.log(courrielInput.value); // Property 'value' does not exist on type 'HTMLElement'
En effet, document.getElementById retourne un HTMLElement
et la propriété value
n'existe pas sur ce type. Par contre, vous savez que ce que vous récupérez est un champ texte, soit un élément HTML de type input
.
Vous pouvez à ce moment préciser le type:
const courrielInput = document.getElementById('courriel') as HTMLInputElement;
console.log(courrielInput.value); // Valide!
Alternativement, vous pouvez aussi utiliser la notation suivante:
const courrielInput = <HTMLInputElement>document.getElementById('courriel');
console.log(courrielInput.value); // Valide!
Les deux notations sont équivalentes, il ne s'agit que d'une préférence personnelle.
À noter que cela ne change en rien l'objet, il s'agit seulement d'une façon d'informer le compilateur de TypeScript du type de la variable.