Un atelier TypeScript · Édition d'ApprentissageA TypeScript Workshop · Learning Edition

L'erreur non typée, ou pourquoi catch (e) est unknown The untyped error, or why catch (e) is unknown

TypeScript ne type pas les rejets : un throw accepte n'importe quelle valeur, donc catch (e) est unknown, jamais MyError. La fausse symétrie avec Result<T, E> tombe — Promise<T> n'a pas de canal d'erreur. Deux issues honnêtes : rétrécir le unknown (instanceof), ou modéliser l'échec attendu comme une valeur typée (union discriminée). Le catch (e: any) qui lit e.message plante sur le premier rejet bizarre. TypeScript doesn't type rejections: a throw accepts any value, so catch (e) is unknown, never MyError. The false symmetry with Result<T, E> falls — Promise<T> has no error channel. Two honest ways: narrow the unknown (instanceof), or model the expected failure as a typed value (discriminated union). The catch (e: any) reading e.message crashes on the first odd reject.

AudienceAudience
Dev qui écrit catch (e: any) e.message et croit l'erreur typée comme en Rust Dev who writes catch (e: any) e.message and thinks the error is typed like in Rust
Format
Self-paced
ChapitresChapters
5
Date
Juin 2026 Jun 2026
≈ 18 min ●●●○ catch unknownResultTradeoff
🔒

La suite est réservée The rest is members-only

Le premier numéro est libre. Débloque tout The TypeScript Loop — tous les volumes, à vie — pour 5 €, paiement unique. The first issue is free. Unlock all of The TypeScript Loop — every volume, forever — for €5, one-time.

Retour au kiosqueBack to newsstand