• 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

index.ts
const settings = { theme: "dark" };

export const t = settings.theme();
ts-r-check -p tsconfig.json --pretty false ts-r output
index.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").