unknown vs any vs never vs void
TypeScript 🟡 MidDéfinition
Quatre types spéciaux: any désactivé le typage, unknown force la vérification avant usage, never représente l'impossible, void l'absence de retour.
Analogie
any: joker sans règles. unknown: colis suspect a inspecter. never: porte murée. void: accusé de réception sans contenu.
Exemple de code
function fail(): never { throw new Error(); }
function log(): void { console.log("ok"); }
function parse(x: unknown) {
if (typeof x === "string") x.trim(); // OK
}
Cas d'usage
Utiliser unknown pour les données externes (API), void pour les callbacks, never pour l'exhaustivité.
Anti-pattern
Termes liés
En entretien
Quelle différence entre any, unknown, never et void ?
any désactive le typage, unknown force la vérification avant usage, never représente l'impossible, et void représente l'absence de retour.
Pourquoi éviter any pour 'faire compiler' ?
Ça masque les bugs au lieu de les prévenir, alors qu'unknown oblige à vérifier le type avant de l'utiliser, par exemple avec `typeof x === "string"`.
Quand utiliser unknown plutôt que any ?
Pour les données externes comme une réponse d'API, void convenant plutôt pour les callbacks et never pour l'exhaustivité.
Fiche mise à jour le 2026-09-27