0Pricing
TypeScript Academy · Leçon

Fraîcheur et vérification des propriétés superflues

Découvrez pourquoi les propriétés superflues déclenchent des erreurs dans certains contextes

Fraîcheur et vérification des propriétés superflues est une leçon TypeScript Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage TypeScript Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours TypeScript Academy comprend 4 leçons au total.

Qu’est-ce que la fraîcheur ?

La fraîcheur est un concept de TypeScript selon lequel les littéraux d’objet sont considérés comme « frais » au moment de leur création. Les objets frais sont soumis à une vérification stricte des propriétés excédentaires, contrairement aux objets élargis.

interface Point { x: number; y: number; }
const p: Point = { x: 1, y: 2, z: 3 }; // Error: 'z' not in Point

La vérification des propriétés excédentaires en pratique

Lorsque vous affectez directement un littéral d’objet à une variable typée ou que vous le transmettez comme argument à une fonction, TypeScript signale les propriétés supplémentaires qui ne figurent pas dans le type cible.

function setPoint(p: { x: number; y: number }) {}
setPoint({ x: 1, y: 2, z: 3 }); // Error: 'z' excess property

Pourquoi la vérification des propriétés excédentaires existe

Elle détecte les fautes de frappe et les propriétés involontaires dans les objets de configuration, qui constituent une source courante de bogues en JavaScript.

interface Options { timeout: number; retry?: boolean; }
const opts: Options = { timeout: 3000, retrey: true }; // Error — typo!

Comment la fraîcheur disparaît

Une fois qu’un littéral d’objet est affecté à une variable intermédiaire, il n’est plus « frais » et la vérification des propriétés excédentaires ne s’applique pas au type élargi.

const opts = { timeout: 3000, retry: true, extra: "surprise" };
const o: Options = opts; // No error — freshness lost on assignment

Les assertions de type contournent la fraîcheur

L’utilisation d’assertions de type avec as contourne également les vérifications des propriétés excédentaires, ce qui peut dissimuler des bogues.

const o = { timeout: 3000, typo: true } as Options; // No error

Vérification des propriétés excédentaires avec les types intersection

Les types intersection peuvent parfois assouplir les vérifications des propriétés excédentaires, car les propriétés supplémentaires peuvent appartenir à l’un des membres de l’intersection.

type A = { x: number };
type B = { y: number };
const ab: A & B = { x: 1, y: 2 }; // OK

Readonly et propriétés excédentaires

La vérification des propriétés excédentaires s’applique également aux types d’objet readonly : cette règle concerne la forme structurelle, et non la mutabilité.

interface Cfg { readonly host: string; }
const c: Cfg = { host: "localhost", port: 3000 }; // Error

Signatures d’index et propriétés excédentaires

L’ajout d’une signature d’index à un type autorise toutes les propriétés supplémentaires dont la clé est une chaîne, ce qui désactive de fait la vérification des propriétés excédentaires pour ce type.

interface Flexible { name: string; [key: string]: unknown; }
const f: Flexible = { name: "ts", extra: true }; // OK

Propriétés facultatives et fraîcheur

Les propriétés facultatives n’assouplissent pas la vérification des propriétés excédentaires. Une propriété qui n’est pas du tout répertoriée — même comme facultative — est tout de même signalée comme excédentaire.

interface Shape { color?: string; }
const s: Shape = { color: "red", size: 10 }; // Error: 'size' excess

Modèles pratiques

Pour transmettre des propriétés de configuration supplémentaires à travers une interface typée sans erreur, utilisez une variable intermédiaire ou une signature d’index dans l’interface.

// Option 1: intermediate variable (freshness lost)
const cfg = { timeout: 3000, debugMode: true };
const o: Options = cfg;
// Option 2: index signature in interface

Récapitulatif : fraîcheur

La fraîcheur s’applique aux littéraux d’objet frais et permet de vérifier les propriétés excédentaires au moment de l’affectation. Affectez l’objet à une variable intermédiaire ou utilisez une signature d’index pour autoriser les propriétés supplémentaires.

Vérification rapide

Quand la vérification des propriétés excédentaires ne s’applique-t-elle PAS ?

Ce que vous avez appris

La fraîcheur et la vérification des propriétés excédentaires vous protègent contre les fautes de frappe et les propriétés involontaires dans les littéraux d’objet. Comprenez quand la fraîcheur disparaît afin d’éviter les erreurs de type surprenantes ou les bogues dissimulés.

Questions Fréquemment Posées

La leçon « Fraîcheur et vérification des propriétés superflues » est-elle gratuite ?

Oui — le texte complet de « Fraîcheur et vérification des propriétés superflues » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours TypeScript Academy, passe à CoddyKit PRO. Le cours TypeScript Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Fraîcheur et vérification des propriétés superflues » ?

Découvrez pourquoi les propriétés superflues déclenchent des erreurs dans certains contextes Tu pratiques TypeScript Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer TypeScript Academy ?

Aucune expérience préalable n'est requise. TypeScript Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Fraîcheur et vérification des propriétés superflues » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon TypeScript Academy ?

Oui. Chaque leçon TypeScript Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Mécanismes d’élargissement et d’affinement des types
  2. Typage contextuel : déduction depuis le contexte
  3. Fraîcheur et vérification des propriétés superflues
  4. Assertions const et as const
← Retour à TypeScript Academy