TypeScript Functions and Narrowing/Declare function overloads

Expose multiple call signatures with one implementation.

Section: Functions and Parameters

Declare function overloads

typescript
typescript
function format(value: number): string;
function format(value: Date): string;
function format(value: number | Date): string {
  return value instanceof Date ? value.toISOString() : value.toFixed(2);
}
Explanation

Overloads help when parameter/return relationships are difficult to express with unions alone.

Learn the surrounding workflow

Compare similar commands or jump into common fixes when this command is part of a bigger troubleshooting path.

Related commands

Same sheet · prioritizing Functions and Parameters
Type a function
Annotate parameters and return values.
OpenIn sheettypescriptsame section
Use optional parameters
Mark a parameter as optional with `?`.
OpenIn sheettypescriptsame section
Use default parameters
Provide a default value and keep a concrete type.
OpenIn sheettypescriptsame section
Use rest parameters
Accept a variable number of arguments.
OpenIn sheettypescriptsame section
Use a function type alias
Describe callback signatures explicitly.
OpenIn sheettypescriptsame section
Narrow with `typeof`
Refine primitive unions using runtime checks.
OpenIn sheettypescript1 tag match