4.1 関数の作り方
TypeScriptで関数を作る方法はいくつかあり、それぞれ構文や特徴が異なります。また、引数の受け取り方や渡し方にも柔軟な機能が備わっています。
4.1.1 関数宣言で関数を作る
Section titled “4.1.1 関数宣言で関数を作る”最も基本的な方法で、function キーワードを使用します。
- 構文:
function 関数名(引数: 型): 返り値の型 { ... } - 巻き上げ (hoisting): 関数宣言はその関数が定義される前の行からでも呼び出すことが可能です。
4.1.2 返り値がない関数を作る
Section titled “4.1.2 返り値がない関数を作る”何も値を返さない関数の場合、返り値の型として void を指定します。
- 特徴:
return;と書くか、あるいはreturn文そのものを省略できます。
4.1.3 関数式とアロー関数式
Section titled “4.1.3 関数式とアロー関数式”関数を一つの「値」として扱い、変数に代入する形式です。
- 関数式:
const f = function(引数: 型) { ... }; - アロー関数式:
const f = (引数: 型) => { ... };(モダンな開発で最も推奨されます) - アロー関数の省略形: 本文が単一の式の場合、
{ return ...; }を省いて=> 式と記述できます。
4.1.4 メソッド記法
Section titled “4.1.4 メソッド記法”オブジェクトのリテラルの中で関数を定義するための特別な記法です。
- 構文:
{ プロパティ名(引数: 型) { ... } }
4.1.5 柔軟な引数の扱い
Section titled “4.1.5 柔軟な引数の扱い”可変長引数 (Rest引数)
Section titled “可変長引数 (Rest引数)”任意の数の引数を配列として受け取ります。
- 記法:
...args: 型[]
オプショナル引数とデフォルト値
Section titled “オプショナル引数とデフォルト値”引数を任意にしたり、省略時の値を設定したりできます。
- オプショナル:
name?: string(渡されない場合はundefined) - デフォルト値:
name: string = "Guest"
関数呼び出しとスプレッド構文
Section titled “関数呼び出しとスプレッド構文”配列の中身をバラバラにして関数の引数に渡します。
- 構文:
sum(...nums)
4.1.6 コールバック関数
Section titled “4.1.6 コールバック関数”関数を別の関数の引数として渡す手法です。これを受け取る関数を 高階関数 と呼びます。
- 実用例:
array.map(item => item * 2)のように、配列操作などで頻繁に利用されます。