TypeScript - 関数 - 関数型の引数

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

1. 概要

関数の引数に、関数を使用します。

type 関数型 = (引数1の変数名: 引数1の型, ・・・) => 戻り値の型;
function 関数名(引数の変数名: 関数型): 戻り値の型 { 処理(); }

上記では、わかりやすくするために、
type で関数の型を定義してから引数の型として使用していますが、
type を使わずに、関数に直接展開して使用することもできます。
function test(func:(value1: number, value2: number) => number): number {}

2. サンプル

//関数を引数にする
type TypeCalc = (value1: number, value2: number) => number;
function calc(func:TypeCalc, value1: number, value2: number): number {
	return func(value1, value2);
}

//関数を変数に代入する
const add = function (value1: number, value2: number): number {
	return value1 + value2;
}
//実行
const result1 = calc(add, 10, 20);
console.log(result1); //30

//関数を変数に代入する
const inc = function (value: number): number {
	return ++value;
}
//実行:引数が一致しないが、ビルドエラーにならないので要注意
const result2 = calc(inc, 10, 20);
console.log(result2); //11