x is not a function
Vous appelez quelque chose comme une fonction (`()`) alors que ce n'est pas une fonction : c'est `undefined`, un objet, une chaîne, ou la méthode n'existe pas.
TypeError: myVar.doSomething is not a function🔍 Cause la plus probable
Soit l'import/le nom est incorrect, soit `this` a perdu son contexte (callback détaché), soit l'objet ne possède pas cette méthode.
✅ Solution étape par étape
- Vérifiez que la variable est bien ce que vous croyez : `console.log(typeof myVar, myVar)`.
- Contrôlez l'import : un export `default` importé entre accolades (ou l'inverse) donne `undefined`.
- Si c'est une méthode de classe utilisée en callback, liez le contexte avec une arrow function.
// perte de this ❌
button.addEventListener('click', this.handle);
// conserve this ✅
button.addEventListener('click', () => this.handle());🧩 Autres causes possibles
Mauvais type retourné par une API
L'API a renvoyé un objet alors que vous attendiez un tableau : vérifiez avant d'appeler `.map()` / `.filter()`.
Version de librairie différente
La méthode a été renommée/supprimée dans une nouvelle version : consultez le changelog.
🛡️ Comment l'éviter à l'avenir
Typage strict TypeScript + tests unitaires sur les fonctions utilitaires. Préférez les arrow functions pour préserver `this`.
🔒 Votre erreur est différente ?
Collez votre message d'erreur dans notre analyseur IA. Traitement anonymisé, rien n'est stocké.
Analyser mon erreur avec l'IABloqué sur un bug plus complexe ?
Nos développeurs Java, Spring & Angular débuggent, optimisent et livrent votre projet.
Parler à un développeur