Assertion Function

TypeScript 🔴 Senior

Definition

Fonction avec une signature asserts qui lance une erreur si la condition n'est pas remplie. Apres l'appel, le type est narrowe pour le reste du scope.

Analogie

Comme un douanier qui refuse l'entree et arrete tout si vos papiers sont invalides — pas de retour possible.

Exemple de code

function assertString(val: unknown): asserts val is string {
  if (typeof val !== "string") throw new Error("Not string");
}
const x: unknown = getData();
assertString(x);
x.toUpperCase(); // x est string ici

Cas d'usage

Validation stricte en debut de fonction qui narrowe les types pour tout le reste du bloc.

Anti-pattern

Oublier le throw dans l'assertion — la fonction ne lance pas et le narrowing est incorrect.

Termes lies

#advanced#safety