Date de sortie : 15 novembre 2022
Documentation officielle : Announcing TypeScript 4.9
TypeScript 4.9 n’a qu’une seule star, mais quelle star : l’opérateur satisfies. Il résout un problème qui frustrait les développeurs depuis des années — valider un type sans perdre l’inférence. Ça a l’air technique, mais c’est un vrai game changer.
Les nouveautés principales
L’opérateur satisfies — le meilleur des deux mondes
Valider qu’une valeur correspond à un type sans perdre l’inférence :
type Colors = Record<string, [number, number, number] | string>;
// Avec annotation de type : on perd l'inférence spécifique
const colors1: Colors = {
red: [255, 0, 0],
green: "#00ff00"
};
colors1.red.map(x => x); // Erreur ! red est string | number[]
// Avec satisfies : validation + inférence préservée
const colors2 = {
red: [255, 0, 0],
green: "#00ff00"
} satisfies Colors;
colors2.red.map(x => x); // OK ! red est [number, number, number]
colors2.green.toUpperCase(); // OK ! green est string
Narrowing avec in sur unknown
Vérifier les propriétés sur des valeurs unknown :
function process(value: unknown) {
if (value && typeof value === "object" && "name" in value) {
// value.name existe
console.log(value.name);
}
}
Auto-accessors dans les classes (ECMAScript)
Support de la syntaxe accessor :
class Person {
accessor name: string;
constructor(name: string) {
this.name = name;
}
}
// Équivalent à un getter/setter avec backing field
Amélioration des performances --watch
Builds incrémentaux 10-25% plus rapides, jusqu’à 40% pour les changements sans effet.
Autres améliorations
- Meilleure comparaison des NaN (=== retourne toujours false)
- Support de return dans les fichiers .mts et .cts
- Colorisation des erreurs dans le terminal
Échanger avec un expert TypeScript
Nous revenons vers vous sous 24h.
Chez Makersquad, nous accompagnons nos clients dans le développement d’applications robustes et maintenables grâce à TypeScript. Que ce soit pour structurer un nouveau projet, migrer un codebase existant ou améliorer la qualité et la sécurité de votre application, notre équipe met son expertise TypeScript à votre service.
À retenir
satisfies est probablement l’addition la plus utile depuis as const. Si vous avez déjà hésité entre une annotation de type et laisser TypeScript inférer, vous n’avez plus à choisir.