Assertion Function
TypeScript 🔴 SeniorDefinition
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.