TypeScript - 関数 - オーバーロード

公開日:2019-02-08 更新日:2019-05-14

1. 概要

関数のオーバーロードをする方法です。

2.1 サンプル

最初の3行が関数の定義になります。
そしてその直後に、全ての引数の形に対応できる本体を実装します。

//関数の定義
function test(value1: number): void
function test(value1: string): void
function test(value1: number, value2: string): void
//本体
function test(value1: any, value2?: string): void {
	console.log("-----");
	
	if (typeof value1 === "string") {
		console.log("引数1:string");
	} else {
		console.log("引数1:number");
	}

	if (value2 === undefined) {
		console.log("引数は1つです。");
	} else {
		console.log("引数は2つです。");
	}
}

test(1);
test("a");
test(1, "a");

-----
引数1:number
引数は1つです。
-----
引数1:string
引数は1つです。
-----
引数1:number
引数は2つです。