TypeError: x is not a function
You called something as a function, but its value is not a function (it’s undefined, a string, an object…).
is not a functionTypeError: x is not a functionmap is not a functionforEach is not a function$ is not a function Meaning
The value exists (or is undefined) but isn’t callable. Common with wrong imports, calling array methods on non-arrays, or a variable shadowing a function.
Common causes
- Wrong import (default vs named):
import foo fromvsimport { foo } from - Calling
.map/.forEachon an object or string instead of an array - Typo in method name, or method doesn’t exist in this library version
- Variable reassigned/shadowed with a non-function
- Missing semicolon before a line starting with
((ASI issue) - Calling a jQuery plugin before it loaded
⚡ Quick fix
- Log
typeof xright before the call - Check the import style against the library docs
- Use
Array.isArray(data)before array methods; for objects useObject.values(obj).map(...)
Detailed fix by platform
JavaScript
- Default vs named exports:javascript
// utils.js: export function formatDate() {} import formatDate from './utils.js'; // ❌ undefined → "formatDate is not a function" import { formatDate } from './utils.js'; // ✅
Node.js
- CommonJS/ESM interop:
const x = require('pkg').defaultmay be needed for ESM default exports.
How to diagnose
- Value — What is typeof the thing being called?
- Import — Named or default export?
- Version — Does this method exist in the installed version?
🔧 Still not fixed?
Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:
Similar errors
Most viewed in JavaScript
- Failed to fetch TypeError: Failed to fetch / NetworkError when attempting to fetch resource
- QuotaExceededError QuotaExceededError: Failed to execute 'setItem' on 'Storage': Setting the value exceeded the quota
- module MIME type Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of "text/html"
Other ways to find it
Where this error sits
Origin: On your device. Errors that are often confused with or caused by this one (click to open):
🧠 Still stuck? Analyze your error
Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.
💬 What worked for others
No tips yet — did something else fix this for you?
Share what worked for you
Tips are checked by an editor before they appear. Links are removed.
Report a correction or suggest an improvement
Last updated 14 Oct 2026