この記事ではTypeScriptでの関数の型について書いています。
この記事を読んでいただくと、関数に型を定義する方法、typeを使って事前に型定義する方法、そしてジェネリクスについて理解を深められるはずです。
この記事を最後まで読んでいただくと、以下のことができるようになります。
これらのスキルはTypeScriptでの開発においてとてもに重要です。
型のエラーに悩まされることなく、安心してコーディングを楽しむことができます。
まず初めに、TypeScriptでの関数に型を直接定義する方法について紹介します。
具体的には次のようなコードになります。
function greet(name: string): string {
return `Hello, ${name}!`;
}
ここでは greet
という関数に name
という文字列型の引数を取り、文字列を返すという型を定義しています。
name: string
で name
引数が文字列型であることを、: string
で greet
関数が文字列を返すことをそれぞれ表しています。
また、引数が1つ以上ある場合は以下のように記述することができます。
function add(a: number, b: number): number {
return a + b;
}
上記のコードは a
と b
という二つの数値を引数にとり、その和を返す関数 add
を定義しています。
ここで、関数 add
は数値を返すため、戻り値の型もnumberとなっていますね。
それでは次に、typeを使って型を事前定義する方法について紹介します。
先に型を定義しておくことで、同じ型の関数を複数作成するときに再利用できるためコードの見通しもよくなります。
type StringFunction = (s: string) => string;
const greet: StringFunction = (name) => {
return `Hello, ${name}!`;
}
const shout: StringFunction = (word) => {
return `${word.toUpperCase()}!`;
}
上記のコードでは StringFunction
という型を事前に定義しています。
この型は文字列を引数に取り、文字列を返す関数になります。
その後に greet
関数と shout
関数を定義する際に、事前定義した StringFunction
型を使っています。
このように同じような関数を複数定義する場面で、型を再利用することができるわけですね。
最後にジェネリクスについて紹介します。
ジェネリクスは型をパラメータ化することで、一つの定義で様々な型に対応する関数やクラスを作ることができます。
function identity<T>(arg: T): T {
return arg;
}
ここでは identity
という関数を定義しています。
<T>
はジェネリスク型引数で、これにより関数 identity
は任意の型Tを受け入れることができます。
このTは関数を呼び出す際に具体的な型(number, stringなど)に置き換えられます。
以上がTypeScriptでの関数の型についての基本的な説明です。
この記事を通じて、関数に型を定義する方法、typeを使った事前の型定義、そしてジェネリクスの基本的な理解を深めていただければ幸いです!
また、これらを理解することでTypeScriptの強力な型システムを最大限に活用することができ、より堅牢でエラーに強いコードを書くことが可能になります。
TypeScriptの短絡評価の使い方「&&」「||」「??」の解説
TypeScriptのタイマー関数setTimeoutとsetIntervalの使い方
TypeScriptの多次元配列の使い方についてわかりやすく解説
TypeScriptでのタプルの使い方と実践テクニックを解説
TypeScriptのimport typeをわかりやすく解説
TypeScriptの配列やオブジェクトのソート完全ガイド
TypeScriptコメントアウトの使い方 完全ガイド
TypeScriptのオブジェクトとプロパティの存在チェック完全ガイド
TypeScriptで即時関数を使う方法を解説!基本から実践的な使い方まで