unknown vs any vs never vs void

TypeScript 🟡 Mid

Dé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

Utiliser any pour 'faire compiler' — masque les bugs au lieu de les prévenir.
#core#interview#safety

En entretien

  1. 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.

  2. 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"`.

  3. 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

← → au clavier pour passer d'une fiche à l'autre