TypeScriptでは、関数に型注釈を追加することで、引数や戻り値の型を明確にし、コードの信頼性を高めることができます。このセクションでは、関数の基本的な定義から、オプション引数やデフォルト引数、アロー関数について学んでいきます。
関数の定義と型注釈
関数を定義する際、引数や戻り値に型を注釈することで、関数がどのような入力を受け取り、どのような結果を返すのかを明確にできます。
typescript
function greet(name: string): string {
return `Hello, ${name}!`;
}
上記の関数greet
は、引数name
としてstring
型を受け取り、戻り値としてstring
型を返します。このように、関数の引数と戻り値の型を指定することで、関数の使い方が明確になり、誤った呼び出しを防ぐことができます。
オプション引数とデフォルト引数
TypeScriptでは、関数の引数を「オプション引数」として定義することができます。オプション引数は、関数を呼び出す際に省略可能な引数です。オプション引数を指定するには、引数名の後に?
を付けます。
typescript
function greetOptional(name: string, title?: string): string {
if (title) {
return `Hello, ${title} ${name}!`;
} else {
return `Hello, ${name}!`;
}
}
この例では、title
はオプション引数であり、指定しなくても関数を呼び出すことができます。
また、デフォルト引数を使うことで、引数が渡されなかった場合に特定の値を使用することもできます。
typescript
function greetDefault(name: string, greeting: string = "Hello"): string {
return `${greeting}, ${name}!`;
}
上記の関数greetDefault
は、greeting
引数が渡されなかった場合、デフォルトで"Hello"
を使用します。これにより、柔軟な関数呼び出しが可能になります。
戻り値の型
関数の戻り値にも型注釈を付けることで、関数が返すデータの型を保証できます。TypeScriptは、関数内のロジックから戻り値の型を推論することもできますが、明示的に指定することでコードの意図をよりはっきりさせることができます。
typescript
function add(a: number, b: number): number {
return a + b;
}
上記の関数add
は、引数としてnumber
型の値を受け取り、number
型の戻り値を返すことが保証されています。
アロー関数
アロー関数は、より簡潔に関数を定義するための構文です。JavaScriptでも使われるこの構文は、TypeScriptでも型注釈を付けて利用することができます。
typescript
const multiply = (a: number, b: number): number => {
return a * b;
};
アロー関数は、特に短い関数を定義する場合や、コールバック関数を記述する場合に便利です。
例えば、アロー関数を使って配列のフィルタリングを行うことができます。
typescript
const numbers: number[] = [1, 2, 3, 4, 5];
const evenNumbers = numbers.filter((num): boolean => num % 2 === 0);
この例では、filter
関数にアロー関数を渡し、evenNumbers
には偶数だけが格納されます。アロー関数の使い方により、コードを簡潔に記述できるため、可読性が向上します。
まとめ
TypeScriptの関数は、型注釈を使うことで引数や戻り値の型を明確にし、エラーを未然に防ぐことができます。オプション引数やデフォルト引数を活用することで、柔軟性を持たせた関数を作成でき、アロー関数を使うことで簡潔なコードを書くことが可能です。これらの概念を理解することで、より安全で読みやすいコードを書くことができるでしょう。