- Error
- Reported by the type checker
TS2349
This expression is not callable.
A value is called with `()` but its type has no call signature. Check that it's really a function.
What it means
The expression's type has no call signatures, so it can't be called. Common causes are calling a property that is a value, an object, or a union where some members aren't callable.
Example
const settings = { theme: "dark" };
export const t = settings.theme();
ts-r-check -p tsconfig.json --pretty false ts-r outputindex.ts(3,18): error TS2349: This expression is not callable.
Type 'string' has no call signatures.
Recorded by node scripts/verify-examples.mjs with ts-r built from commit 6deaf01. The example uses the default tsconfig: strict, target: es2022, module: esnext, moduleResolution: bundler.
How to fix
- Remove the call if the value isn't a function.
- For a union, narrow to the callable member first (
typeof x === "function").