関数の定義
TypeScriptでは、JavaScriptの関数に加えて、型注釈によって引数や戻り値の型を厳密に定義できます。これにより、関数の意図や使い方が明確になり、バグを未然に防ぐことができます。
🔰 基本構文
// `function`での定義
function 関数名(引数: 型, ...): 戻り値の型 {
// 処理
}
// アロー関数
const 関数名 = (引数: 型, ...): 戻り値の型 => { }
戻り値の型は省略可能ですが、明示することで補完性・可読性が向上します。 基本的には以下のルールで利用するのが良いとされています。
- 特別問題がなければfunctionで定義する。
- 無名関数はアロー関数を利用する。
🧪 使用例:基本的な関数定義
function greet(name: string): string {
return `Hello, ${name}`;
}
const message = greet("Taro"); // Hello, Taro
✅ 複数引数の関数
function add(a: number, b: number): number {
return a + b;
}
🌟 オプション引数・デフォルト引数
function log(message: string, user?: string): void {
console.log(user ? `[${user}] ${message}` : message);
}
function greetUser(name: string = "Guest"): string {
return `Hello, ${name}`;
}
user?: string
は省略可能な引数= "Guest"
はデフォルト値付き引数
🧩 戻り値が void
の関数
function showAlert(message: string): void {
alert(message);
}
- 何も返さない関数は
void
を指定 - 戻り値に何かある場合は型注釈をつける
📦 オブジェクトや配列を返す関数
function getUser(): { name: string; age: number } {
return { name: "Alice", age: 25 };
}
function getTags(): string[] {
return ["ts", "js", "web"];
}
- オブジェクトリテラルや配列には型注釈が有効
- ジェネリックや型エイリアスと組み合わせると柔軟性向上
✅ まとめ
機能 | 説明 |
---|---|
引数の型注釈 | 関数の利用ミスを防止できる |
戻り値の型注釈 | 関数の出力の予測性を高める |
オプション引数 | ? を使って引数を省略可能にできる |
アロー関数 | 表現が簡潔で this の挙動も安定する |
関数定義に型注釈を加えることで、安全性と補完性の高い開発体験が得られます。