[TypeScript] 関数

はじめに

今回は、TypeScript における関数の作成方法について説明します。

目次

名前付き関数

そもそも、関数とは一連の処理をまとめて定義し、再利用を可能にするものです。

名前付き関数とは、文字通り一連の処理に名前がつけられた関数のことで、使用者は関数名で呼び出しをすることができます。

名前付き関数の書式を以下に示します。

function 関数名() {
  // 実行したい一連の処理
}

以下は、sayHello という関数定義して使用する例です。この関数は「こんにちは」を表示するというシンプルな関数です。

// sayHello 関数の定義
function sayHello() {
    console.log("こんにちは");
}

sayHello(); // 関数の呼び出し

引数のある関数

引数(ひきすう)とは、関数に渡せるパラメータのことです。関数は受け取った引数を関数の内部で使用することができます。

引数のある関数の書式を以下に示します。引数名は「変数名 : データ型」の組み合わせをカンマで区切って複数指定することができます。

function 関数名(変数名 : データ型, 変数名 : データ型, ...) {
  // 実行したい処理
}

以下は、number型の変数を2つを受け取って足し算の結果を表示する関数の例です。

// addNum 関数の定義
function addNum(x : number, y : number) {
    let ans = x + y;
    console.log(ans);
}

addNum(3, 4); // 関数の呼び出し

省略可能な引数

引数は、値を受け取らなくても良い場合もあり、このような引数の場合には引数名の後ろに「?」をつけます。

以下に例を示します。

この例では number 型の x と y の値を受け取りますが、yは省略してもいいように「?」をつけています。省略された場合は y の値は undefined になります。

ここで定義した関数 addNum は 2つの引数を渡すこともできますし、1つのみ渡すこともできます。

// addNum 関数の定義
function addNum(x : number, y? : number) {
    let ans = 0 ;
    if (y != undefined) {
        ans = x + y;
    } else {
        ans = x;
    }
    console.log(ans);
}

addNum(3,4);    // 7
addNum(3);      // 3

引数のデフォルト値

すでに説明した通り、引数は省略することができます。引数が省略された場合に、デフォルト値が使われるようにすることができます。

デフォルト値を使用する引数は、「引数名 : データ型 = 値」のように書きます。

以下に例を示します。

この例では、引数 y を省略可能にし、省略された場合は 10 という値がデフォルト値として使用されるようにしています。

// addNum 関数の定義
function addNum(x : number, y : number = 10) {
    let ans = x + y;
    console.log(ans);
}

addNum(3,4);    // 7
addNum(3);      // 13

戻り値を返す関数

戻り値とは、関数の呼び出し元に返す、関数からの返却値です。

戻り値のある関数の書式を以下に示します。

function 関数名() : データ型 {
  // 実行したい処理
}

以下は、2つの数値を受け取って足し算した結果を呼び出し元に返す例です。

// addNum 関数の定義
function addNum(x : number, y : number) : number {
    let ans = x + y;
    return ans;     // 呼び出し元に返す値
}


let ans = addNum(3, 4); // 関数の呼び出し
console.log(ans);

無名関数

無名関数は、文字通り名前のない関数です。無名関数は、変数に格納して使用します。

無名関数の書式を以下に示します。無名関数は関数名がないだけで、引数も戻り値も持たせることが可能です。

let 変数名 = function() {
  // 実行したい一連の処理
}

以下は、足し算をする無名関数の例です。関数そのものを addnum という変数に代入しています。この関数は、変数を関数であるかのようにして使用します。

// 無名関数の定義
let addnum = function (x : number, y : number) : number {
    return x + y;
}

let ans = addnum(2,3);  // 5
console.log(ans);

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください