カテゴリ: TypeScript 更新日: 2025/12/05

TypeScriptで関数を定義する基本構文と書き方

TypeScriptで関数を定義する基本構文と書き方
TypeScriptで関数を定義する基本構文と書き方

先生と生徒の会話形式で理解しよう

生徒

「TypeScriptで、自分で処理をまとめておく“関数”ってどうやって書くんですか?」

先生

「TypeScriptでは、関数という“ひとかたまりの命令”を定義して、あとから何度でも使えるようにできますよ。」

生徒

「便利そうですね!その関数って、どう書けばいいんですか?」

先生

「それでは、TypeScriptの関数の書き方を一つずつ見ていきましょう!」

1. 関数とは?

1. 関数とは?
1. 関数とは?

関数とは、よく使う処理をひとまとめにして「名前」をつけておく仕組みです。あとからその名前を呼び出すだけで、中に書いておいた処理を何度でも実行できます。

例えば、毎回「あいさつの文章」を表示したいときに、そのたびに同じコードを書くのは大変ですよね。そこで「あいさつ専用の関数」を作っておくと、その関数を呼ぶだけで同じ処理を簡単に使い回せます。

イメージとしては、「あいさつボタン」「計算ボタン」のようなものを、自分で作っておく感じです。ボタンに名前を付けておけば、必要なときにそのボタンを押すだけで、同じ動きをしてくれます。


function greetUser() {
    console.log("こんにちは! TypeScriptの関数の世界へようこそ!");
}

greetUser(); // 関数を呼び出して実行する

上のサンプルでは、greetUserという名前の関数を用意しています。中には「あいさつの文章を表示する」という処理がまとまっています。実際に処理を動かしたいときは、下の行のようにgreetUser()と書いて「呼び出す」だけです。

このように、TypeScriptで関数を使うと「同じ処理をくり返し書かなくてよい」「あとから意味のまとまりごとに見直しやすい」といったメリットがあります。TypeScriptではJavaScriptと同じように関数を使えますが、後の章で出てくる「型(たとえば文字か数字か)」と組み合わせることで、より安全で分かりやすいコードを書けるようになります。

2. TypeScriptの基本的な関数の書き方

2. TypeScriptの基本的な関数の書き方
2. TypeScriptの基本的な関数の書き方

まずは、最もシンプルな関数の書き方を紹介します。

「こんにちは!」と表示するだけの関数を作ってみましょう。


function greet(): void {
    console.log("こんにちは!");
}
greet(); // 関数を呼び出します

functionは「関数を作るよ」というキーワードです。

greet()は関数の名前で、「: void」は「何も返さないよ」という意味です。

中のconsole.logは、コンピュータに文字を表示させる命令です。

3. 引数ありの関数を作る

3. 引数ありの関数を作る
3. 引数ありの関数を作る

次に、関数に情報(引数)を渡して、処理の内容を変える方法を見てみましょう。

たとえば、名前を渡して、あいさつをする関数です。


function sayHello(name: string): void {
    console.log("こんにちは、" + name + "さん!");
}
sayHello("たろう");

この関数では、name: stringと書くことで、「文字列(string)型」の名前を受け取るよと宣言しています。

このように、関数に渡すデータのことを引数(ひきすう)といいます。

4. 戻り値を返す関数の書き方

4. 戻り値を返す関数の書き方
4. 戻り値を返す関数の書き方

関数は、計算した結果などを呼び出し元に返すこともできます。それを戻り値と呼びます。

次の例では、2つの数字を足して、合計を返す関数です。


function addNumbers(a: number, b: number): number {
    return a + b;
}
let result = addNumbers(3, 5);
console.log("合計は: " + result);

a: numberb: numberは、どちらも「数字型」の引数です。

: numberと関数名の後ろにあるのは、「この関数は数字を返すよ」という意味です。

returnは「この値を返すよ」という命令です。

5. 無名関数とアロー関数の書き方

5. 無名関数とアロー関数の書き方
5. 無名関数とアロー関数の書き方

関数には名前をつける以外に、無名関数(名前のない関数)という書き方もあります。

特に「アロー関数」と呼ばれる書き方は、簡潔でよく使われます。


const multiply = (x: number, y: number): number => {
    return x * y;
};
console.log(multiply(4, 3));

=>の部分が「アロー(矢印)」の形をしているので「アロー関数」と呼ばれます。

const multiplyで、関数を変数に代入しているというイメージです。

6. 関数の型注釈を使うメリット

6. 関数の型注釈を使うメリット
6. 関数の型注釈を使うメリット

TypeScriptでは、関数に型をつけることで、プログラムのミスを減らすことができます。

たとえば、文字ではなく数字が必要な関数に、まちがって文字を渡そうとすると、TypeScriptが「これは間違ってるよ!」と教えてくれます。

これを静的型チェックといい、大きなプロジェクトでも安心してコードを書ける仕組みです。

7. 関数の中で別の関数を呼び出す

7. 関数の中で別の関数を呼び出す
7. 関数の中で別の関数を呼び出す

関数の中で、他の関数を使うこともできます。処理を分けることで、読みやすくて整理されたコードが書けるようになります。


function getGreeting(name: string): string {
    return "こんにちは、" + name + "さん!";
}

function greetUser() {
    let message = getGreeting("さくら");
    console.log(message);
}

greetUser();

getGreetingという関数でメッセージを作って、greetUserという関数がそれを使っています。

このように、関数の再利用ができるのもプログラミングの大きな魅力です。

まとめ

まとめ
まとめ

TypeScript(タイプスクリプト)における関数の定義は、プログラミングの基礎の中でも特に重要な要素のひとつです。関数とは、ひとまとまりの処理に名前をつけて再利用できる仕組みであり、コードの見通しを良くしたり、同じ処理を何度も書く手間を省いたりするために欠かせません。

TypeScriptでは、JavaScriptと同じように関数を書けるだけでなく、引数や戻り値に型注釈をつけることができるのが特徴です。これにより、関数の使い方を明確にし、間違った型の値が渡された場合にもコンパイル時にエラーとして検出できます。

たとえば、「文字列型の名前を受け取ってあいさつを表示する関数」や、「2つの数値を加算して結果を返す関数」など、目的ごとに型を定義することで、安全で読みやすいコードを書くことができます。以下に、今回学んだ内容を活用したサンプルコードを紹介します。

サンプル:型付きの関数を複数定義して使い分ける


// 名前を受け取ってあいさつする関数
function sayHi(name: string): string {
    return `こんにちは、${name}さん!`;
}

// 数値を受け取って倍にするアロー関数
const double = (value: number): number => {
    return value * 2;
};

// 結果を表示するだけの関数(戻り値なし)
function showResult(message: string): void {
    console.log(message);
}

// 使用例
let greeting = sayHi("りん");
let doubled = double(10);
showResult(greeting);
showResult("2倍の結果は: " + doubled);

こんにちは、りんさん!
2倍の結果は: 20

上記のように、関数の型注釈を活用することで、処理の目的と戻り値の型が明確になり、コードの信頼性が一気に高まります。

また、TypeScriptではアロー関数無名関数を使って、より簡潔に記述することも可能です。開発の現場では、アロー関数が特に多く用いられ、イベント処理やコールバック関数などでも大活躍します。

さらに、関数の中で別の関数を呼び出したり、関数を変数として扱ったりすることで、柔軟な構造のコードを組み立てることができます。関数をブロックのように組み合わせていく感覚は、まさにプログラミングの醍醐味といえるでしょう。

今回の記事を通じて、「関数の基本構文」「引数と戻り値の書き方」「アロー関数の記法」「型注釈の重要性」など、TypeScriptで関数を定義する際に知っておきたいポイントを一通り学べたはずです。関数をマスターすることで、今後の開発に大きな自信が持てるようになりますよ。

先生と生徒の振り返り会話

生徒

「先生、関数って“まとめて使える命令”って感じで、すごく便利ですね!」

先生

「そうですね。同じ処理を何度も書かなくて済むので、コードもスッキリしますよ。」

生徒

「今回は、引数に型をつけたり、戻り値を返したり、アロー関数を使ったり、色々学べました!」

先生

「それは素晴らしいですね。TypeScriptでは、関数の型を明示することで、より安全でわかりやすいコードが書けます。実際にコードを書きながら、どんどん試していくともっと理解が深まりますよ。」

生徒

「はい!まずは小さな関数をたくさん書いて練習してみます!」

先生

「それが一番の近道です。これからのTypeScript学習も、楽しみながら進めていきましょう!」

関連記事:
カテゴリの一覧へ
新着記事
TypeScriptのEnum(列挙型)の使い方を解説!初心者でもわかる定数のグループ化
TypeScriptとは?JavaScriptとの違いと導入メリットを徹底解説
TypeScriptとJavaScriptでの変数宣言の違い(型注釈あり/なし)
TypeScriptのインターフェース(interface)とは?基本構文と使い方
人気記事
No.1
Java&Spring記事人気No1
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
JavaScriptプログラムの実行方法まとめ!ブラウザ・Node.js・コンソールの使い方
No.3
Java&Spring記事人気No3
TypeScriptの始め方:開発環境の構築手順【初心者向け】
No.4
Java&Spring記事人気No4
JavaScriptのMathオブジェクトの基本メソッド一覧と使い方