Cannot invoke expression TypeScript TS2349

TS2349: Cannot invoke expression with no call signature

Quick Answer

You tried to call something TypeScript doesn't recognize as callable.

Why This Happens

In TypeScript, you tried to call something typescript doesn't recognize as callable. This is one of the most common TypeScript errors developers encounter. Understanding the root cause helps you fix it quickly and prevent it from recurring.

The Problem

type MaybeFunc = (() => void) | undefined;
const fn: MaybeFunc = getFn();
fn();

The Fix

const fn: MaybeFunc = getFn();
fn?.();

Step-by-Step Fix

  1. 1

    Identify the error

    Look at the error message: TS2349: Cannot invoke expression with no call signature. This tells you exactly what went wrong.

  2. 2

    Find the cause

    Check the stack trace to find which line of your TypeScript code triggered this error.

  3. 3

    Apply the fix

    Use the corrected code pattern shown above. Test to confirm the error is resolved.

Bugsly catches this automatically

Bugsly's AI analyzes this error pattern in real-time, explains what went wrong in plain English, and suggests the exact fix — before your users even report it.

Try Bugsly free