TypeScript: error TS2349: This expression is not callable. Type 'X' has no call signatures.
You called something TypeScript believes isn't a function (a union without compatible signatures, a module namespace, an object).
error TS2349: This expression is not callable.This expression is not callable. Type 'X' has no call signatures.TS2349: This expression is not callableEach member of the union type has signatures, but none of those signatures are compatible with each othererror TS2349 Meaning
Check the type: typeof x. Common causes: calling a default-imported module wrongly (esModuleInterop), a union of functions with different parameters, or calling an object/optional function without a guard. Narrow (typeof fn === "function"), fix the import form, or cast to the right function type.
Common causes
import foo from "cjs"without esModuleInterop- Union of function types with incompatible params
- Calling a possibly-undefined function
- Calling a class without
new - Variable shadowing
⚡ Quick fix
- Fix import style (
import * as x/import x = require()/ enableesModuleInterop) - Narrow:
if (typeof cb === "function") cb() - Use
newfor classes
Detailed fix by platform
TypeScript
if (typeof callback === "function") { callback(value); }
How to diagnose
- Type — Callable?
- Import — Interop?
- Union — Compatible?
🔧 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
- Cannot find module './App.vue' or its corresponding type declarations TypeScript: error TS2307: Cannot find module './App.vue' or its corresponding type declarations.
- TS1005: ';' expected / ',' expected (syntax error) TypeScript: error TS1005: ';' expected.
- TS1259: Module can only be default-imported using the 'esModuleInterop' flag TypeScript: error TS1259: Module '"express"' can only be default-imported using the 'esModuleInterop' flag
Most viewed in TypeScript
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 5 Nov 2026