0Pricing
TypeScript Academy · Leçon

Le type any et pourquoi l’éviter

Comprenez ce qu’est any et dans quels cas il va à l’encontre de l’objectif de TypeScript.

Le type any et pourquoi l’éviter est une leçon TypeScript Academy gratuite sur CoddyKit. Ceci est la leçon 2 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.

Bienvenue

Le type `any` est la solution de secours de TypeScript : il désactive toute vérification de type pour une variable. Dans cette leçon, vous comprendrez quand il apparaît et pourquoi il faut limiter son utilisation.

Ce que fait le type quelconque

Une variable typée avec `any` peut contenir n'importe quelle valeur et accepter n'importe quelle opération. TypeScript cesse complètement de la vérifier.
let x: any = 5;
x = 'hello';       // OK
x = true;          // OK
x.nonExistent();   // No error — but crashes at runtime!

Comment le type quelconque se propage

Affecter une variable `any` à une variable typée contamine cette dernière. `any` se propage silencieusement dans votre base de code.
let data: any = fetchData();
let name: string = data.name; // name is now effectively any

Quand TypeScript déduit le type quelconque

Si vous déclarez une variable sans valeur initiale ni annotation de type, TypeScript lui attribue le type `any`. Activez `noImplicitAny` pour transformer cette situation en erreur de compilation.
let value; // inferred as any — dangerous!
value = 42;
value = 'hello';

// Fix:
let value2: number;

Indicateur noImplicitAny

L'option de compilation `noImplicitAny` (activée par `strict`) vous oblige à annoter les types au lieu d'utiliser `any` par défaut.
// tsconfig.json
{ "compilerOptions": { "noImplicitAny": true } }

// Now this is an error:
function process(data) { } // Error: Parameter has implicit any type

Utilisations légitimes du type quelconque

Parfois, `any` est inévitable : lors de la migration de JavaScript, avec des bibliothèques tierces dépourvues de types ou lorsque vous manipulez des données réellement dynamiques. Utilisez-le avec parcimonie et localement.
// Acceptable: narrow scope, clearly documented
function parseJson(raw: string): any {
  return JSON.parse(raw); // validate with Zod afterwards
}

Les assertions de type comme solution de remplacement

Au lieu de `any`, utilisez des assertions de type (as Type) lorsque vous en savez davantage que le compilateur. Cette approche est plus sûre, car vous vous engagez à utiliser un type précis.
const raw = JSON.parse(text) as { name: string; age: number };
console.log(raw.name); // typed correctly

Type quelconque ou objet

Le type `object` accepte toute valeur non primitive, mais n'autorise pas l'accès arbitraire aux propriétés, contrairement à `any`. Il offre ainsi une légère protection supplémentaire.
let o: object = { x: 1 };
// o.x; // Error — object doesn't allow property access

let a: any = { x: 1 };
a.x; // OK — but no safety

Le type quelconque désactive la complétion automatique

Au-delà de la sécurité, l'utilisation de `any` désactive la complétion automatique et la navigation de l'environnement de développement. Vous perdez tous les avantages des outils fournis par TypeScript.

Remplacer le type quelconque par le type inconnu

Pour les données externes que vous ne contrôlez pas, préférez `unknown`. Il vous oblige à réduire le type avant de l'utiliser, contrairement à `any`, qui vous permet de tout faire.
let input: unknown = getInput();
// input.toUpperCase(); // Error — must narrow first
if (typeof input === 'string') {
  console.log(input.toUpperCase()); // OK
}

Le coût du type quelconque

Considérez `any` comme une dette. Chaque utilisation rend votre base de code moins sûre. Visez zéro type `any` dans le code de production. Utilisez la règle @typescript-eslint/no-explicit-any d'ESLint.

Vérification rapide

Quelle option de compilation indique une erreur à TypeScript lorsqu'une variable possède implicitement le type `any` ?

Récapitulatif

Le type `any` désactive la vérification des types de TypeScript et se propage dans le code. Activez noImplicitAny, remplacez `any` par `unknown` pour les données externes et utilisez des assertions de type dans les cas précis.

Questions Fréquemment Posées

La leçon « Le type any et pourquoi l’éviter » est-elle gratuite ?

Oui — le texte complet de « Le type any et pourquoi l’éviter » 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 « Le type any et pourquoi l’éviter » ?

Comprenez ce qu’est any et dans quels cas il va à l’encontre de l’objectif de TypeScript. 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 2 sur 4.

Combien de temps prend la leçon « Le type any et pourquoi l’éviter » ?

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. Types primitifs : string, number, boolean
  2. Le type any et pourquoi l’éviter
  3. unknown contre any : le choix le plus sûr
  4. null, undefined et vérifications strictes de nullité
← Retour à TypeScript Academy