TypeScript - 匿名関数:初めての人向けガイド
こんにちは、将来のプログラミングスーパースター!今日は、TypeScriptのエキサイティングな世界に飛び込み、初めて聞くと少し不思議に思えるかもしれない概念を探ってみましょう:匿名関数。これが秘密工作員のコードネームのように聞こえるかもしれませんが、このチュートリアルの終わりまでに、これらの関数をプロのように使えるようになるでしょう!
匿名関数とは?
まず、「匿名関数」とは何を意味するのかを分解してみましょう。プログラミングの世界では、私たちは関数に名前を付けることが多いです。例えば、「calculateTotal」や「sendEmail」などです。しかし、名前を付けない関数もあります。これらはコードの世界のマスクを被ったヒーローのようなものです。この名前のない不思議な存在を私たちは匿名関数と呼びます。
マスクを被ったパーティを想像してみてください。誰もが派手なマスクを着ていて、顔も名前も見えませんが、それでもダンスや会話、楽しむことができます。匿名関数がコード内で行うのは、このようなものです。名前を正式に紹介することなくタスクを実行します!
では、TypeScriptでこれらの匿名関数をどのように作成できるか見てみましょう。
'function'キーワードを使用して匿名関数を定義する
匿名関数を作成する最初の方法は、古い好朋友「function」キーワードを使用することです。以下はその例です:
let greet = function(name: string) {
console.log("Hello, " + name + "!");
};
greet("Alice"); // 出力: Hello, Alice!
この例では、誰かに挨拶する関数を作成しています。以下に分解します:
-
let greet =
で、私たちは「greet」という変数を作成しています。 - 等号の後ろの
function(name: string) { ... }
は、私たちの匿名関数です。 - 波括弧
{ }
の中には関数の本体があります。関数が実際に何をするかがここに書かれています。 - この関数を使うために、
greet("Alice")
を呼び出します。
まるで、挨拶するロボットを作成し、そのロボットに「greet」というコードネームを与えたようなものです!
アロー関数を使用して匿名関数を定義する
次に、匿名関数を書くより現代的で簡潔な方法を見てみましょう。アロー関数の構文です。これは関数の世界のスポーツカーのようなもの:スリムで、速く、かっこいい!
let add = (a: number, b: number): number => {
return a + b;
};
console.log(add(5, 3)); // 出力: 8
ここでは何が起こっているのでしょうか?
- 私たちは「add」という変数を作成しています。
-
(a: number, b: number)
の部分は、関数が受け取るパラメータを定義しています。 -
: number
は、関数が数値を返すことを指定しています。 -
=>
はアロー関数を示しています(少し箭頭のように見えるでしょう?)。 - 波括弧
{ }
の中には関数本体があります。
シンプルな関数の場合、これをさらに短くすることができます:
let multiply = (a: number, b: number): number => a * b;
console.log(multiply(4, 6)); // 出力: 24
この場合、私たちは { }
と return
キーワードを省略しています。まるで、関数が「私は så 簡単だから、これら余計な記号はいらない!」と言っているようです!
匿名関数をコールバック関数として使用する
さて、匿名関数が本当に輝く場面は、コールバック関数として使用する時です。コールバック関数は、他の関数に引数として渡される関数です。まるで友達に「あなたがタスクを終えたら、このことをしてくれ」と言うようなものです。
setTimeout
関数を使用した例を見てみましょう:
setTimeout(() => {
console.log("このメッセージは2秒後に表示されます!");
}, 2000);
このコードでは:
-
setTimeout
は指定された時間が経過した後に何かを行う関数です。 - 第一引数は、アロー関数として書かれた匿名関数です。
- 第二引数(2000)は待機するミリ秒数です(2秒)。
まるでタイマーを設定し、「タイマーが鸣ったら、このメッセージを表示してくれ」と言っているようなものです!
もう一つの例として配列メソッドを使用したものを見てみましょう:
let numbers = [1, 2, 3, 4, 5];
let doubledNumbers = numbers.map((num) => num * 2);
console.log(doubledNumbers); // 出力: [2, 4, 6, 8, 10]
この場合:
- 私たちは数値の配列を持っています。
-
map
関数を使用して、配列の各要素に対して関数を適用します。 - 私たちの匿名関数
(num) => num * 2
は各数値を倍にします。 - 結果として、倍にされた数値の新しい配列が得られます。
まるで各数値を取り出し、倍にして新しい箱に詰める機械を作成したようなものです!
結論
そして、皆さん!TypeScriptにおける匿名関数のミステリーを解き明かしたわけです。これらの関数は、コードの中の助け舟のように、正式な名前タグなしで仕事をこなします。
以下に、私たちが学んだ方法を簡単な表形式でまとめます:
メソッド | 文法 | 例 |
---|---|---|
Function キーワード | let funcName = function(params) { ... } |
let greet = function(name: string) { console.log("Hello, " + name); } |
アロー関数(複数行) | let funcName = (params) => { ... } |
let add = (a: number, b: number) => { return a + b; } |
アロー関数(一行) | let funcName = (params) => expression |
let multiply = (a: number, b: number) => a * b; |
コールバックとして | someFunction(() => { ... }) |
setTimeout(() => { console.log("Time's up!"); }, 1000); |
これらの異なる方法を練習し、すぐに匿名関数をプログラミングの忍者のように使えるようになるでしょう!プログラミングにおいても人生においても、最も強力な力は時折背後で働いているものです。お楽しみください!
Credits: Image by storyset