2024-09-18
🔷TypeScriptの学習_6 (関数関連2)
アロー関数
アロー関数とは=>を使用した関数の構文で、通常の書き方より簡潔に記述できる関数の作成方法
code:アロー関数の基本の構文
(引数) => {
// 処理 
}
アロー関数に関数名をつけるには変数に代入する必要がある
code:アロー関数に名前をつける
const 変数名 = (引数) => {
// 処理 
}
アロー関数は引数や処理の数によって更に省略ができる
引数が一つの場合、カッコが省略できる。ただし、引数がない場合はカッコの省略はできない
code:引数が1つの場合
const 変数名 = 引数 => {
// 処理
}
code:引数なし
const 変数名 = () => {
// 処理
}
処理のコードが式1つの場合は中括弧{}とreturn文の省略が可
code:処理が式1つのみ
const 変数名 = 引数 => 処理;
アロー関数でも引数と戻り値の型注釈を記述できるが、引数が1つで括弧を省略した場合は引数、戻り値ともに型注釈の記述はできない
code:アロー関数の型注釈
const 変数名 = (引数: データ型): 戻り値のデータ型 => {
// 処理
}
※なお、カッコを省略して型注釈がかけない場合でも、コンパイラオプションのnoImplicitAnyが有効だとコンパイル時にエラーになる
参考:サバイバルTypeScript:アロー関数 (arrow function)
オーバーロード関数
オーバーロード関数は、同じ名前の関数に異なる関数シグネチャ(どのような引数を取るか、どのような戻り値を返すかといった関数の型)を複数定義する機能
➜呼び出し時の引数に応じて適切な関数が実行されるようになる
オーバーロード関数はオーバーロードシグネチャと実装の2つの部分に分けて書く
code:オーバーロード関数の文法
// オーバーロードシグネチャ
function 関数名 関数シグネチャ1;
function 関数名 関数シグネチャ2;
....
// 関数の実装
function 関数名 実装シグネチャ
まず、引数違いのパターン分の関数シグネチャ(オーバーロードシグネチャ)を記述する
先に記述したすべての関数シグネチャを包括する内容で実装部分の関数を記述する
オーバーロード関数が使えるのは関数宣言だけなのでアロー関数にはオーバーロードの構文はない
関数実行時はオーバーロードシグネチャの何れかに合致する必要があり、実装シグネチャは直接呼び出せない
参考:サバイバルTypeScript:オーバーロード関数 (overload function)
#TypeScript