Special Sponsor:PromptBuilder— Fast, consistent prompt creation powered by 1,000+ expert templates.
Make your Product visible here.Contact Us

Home/TypeScript Errors/TS2769

TS2769

No overload matches this call

TypeScript TS2769 fires when you call an overloaded function and none of its declared overload signatures match the arguments you provided. TypeScript tries each overload in order and reports TS2769 when all fail.

Why This Happens

You're calling a function that has multiple overload signatures, but the combination of argument types you're passing doesn't match any of the overloads. Common with DOM APIs, React's createElement, and libraries with complex overloads.

Code That Triggers TS2769

// TS2769 examples

// Custom overloaded function
function format(value: number): string;
function format(value: string, prefix: string): string;
function format(value: any, prefix?: string): string {
  return prefix ? prefix + value : String(value);
}

format(42, "num:");     // OK — first overload? No, first needs no prefix
format("hi");           // Error: No overload matches this call
// Second overload requires prefix, first only accepts numbers

// DOM API
document.createElement("video");  // OK — returns HTMLVideoElement
document.createElement("custom"); // may trigger TS2769 with strict checking

How to Fix TS2769

Option 1: Match arguments to an existing overload

format(42);           // matches overload 1: (number) => string
format("hi", "pre:"); // matches overload 2: (string, string) => string

Option 2: Add an overload that covers the missing case

function format(value: number): string;
function format(value: string, prefix: string): string;
function format(value: string): string; // new overload
function format(value: any, prefix?: string): string {
  return prefix ? prefix + value : String(value);
}

Option 3: Use a single signature with optional/union params

function format(value: number | string, prefix?: string): string {
  return prefix ? prefix + value : String(value);
}

Frequently Asked Questions — TS2769

What does TS2769 mean?

TS2769 means you called an overloaded function with arguments that don't match any of its declared overload signatures. TypeScript tries each overload and reports this when all fail.

How do I read the TS2769 error message?

TypeScript lists each overload and why it failed. Read the reasons for each overload to understand which argument is wrong. Usually the last overload listed tells you the most about the actual mismatch.

TS2769 with React JSX — how to fix?

Common when passing props of the wrong type. TypeScript tries each overload of createElement and reports TS2769 when none match. Check which prop is the wrong type and fix it.

TS2769 in lodash/library calls — how to fix?

Library overloads can be complex. Check the library docs for the expected argument types. If the types are wrong, update @types/library to the latest version.

How do I write good TypeScript overloads to avoid TS2769 for callers?

Cover all expected call patterns with explicit overloads. Keep the implementation signature (the last one) as the widest type. Order overloads from most specific to least specific.

Convert JavaScript to TypeScript automatically

Paste your JS code and get type-annotated TypeScript — including fixes for common type errors — in seconds.

Try the converter →

Other TypeScript Errors

From the blog

View all →