見出し画像

#023 TypeScript(9):引数

TypeScriptのアロー関数:特殊な引数の型付け

オプショナルな引数

説明: ?をつけることで、その引数はオプショナル(省略可能)になります。引数intが渡されなかった場合、undefinedになります。

const funcTestOption = (str: string, int?: number): void => {
  console.log(str, int);
}

デフォルト値のある引数

説明: =の後にデフォルト値を指定できます。この引数が省略された場合、デフォルト値が使用されます。

const funcTestDefault = (int: number = 0, str: string = 'aaa'): void => {
  console.log(int, str);
}

可変長引数(レストパラメータ)

説明: ...itemsは可変長引数を表し、任意の数の引数を配列として受け取ります。

const eachNumber = (...items: number[]): void => {
  for (const item of items) {
    console.log(item);
  }
}

関数の型付けのメリット

  1. コードの意図が明確になる: 関数が何を受け取り、何を返すのかが一目でわかります。

  2. エラーの早期発見: 間違った型の引数を渡したり、間違った型の戻り値を返したりすると、コンパイル時にエラーが表示されます。

  3. IDEのサポート: 適切な補完や提案が得られ、開発効率が向上します。

初心者向けの考え方

  • 関数に型をつけることで、「この関数はこういうデータを受け取って、こういうデータを返すんだよ」というルールを明示できます。これにより、関数の使い方がわかりやすくなります。

ファイルの作成

tsファイル


ファイルの追加

tsファイル内容

// オプショナルな引数
const funcTestOption = (str: string, int?: number): void => {
    console.log(str, int);
}
funcTestOption("テスト"); // 出力: テスト undefined
funcTestOption("テスト", 123); // 出力: テスト 123

// デフォルト値のある引数
const funcTestDefault = (int: number = 0, str: string = 'aaa'): void => {
    console.log(int, str);
}
funcTestDefault(); // 出力: 0 aaa
funcTestDefault(456); // 出力: 456 aaa
funcTestDefault(456, "bbb"); // 出力: 456 bbb

// 可変長引数(レストパラメータ)
const eachNumber = (...items: number[]): void => {
    for (const item of items) {
        console.log(item);
    }
}
eachNumber(1, 2, 3); // 出力: 1 2 3
eachNumber(4, 5, 6, 7); // 出力: 4 5 6 7

コマンド実行

npm run build

index.html修正

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>タイプスクリプト</h1>
    <script src="./arrow_function_type_option.js"></script>
</body>
</html>

結果

ブラウザで確認

終わりに

少し長くなったので、ここで一旦お話をクローズさせて頂きます。
自分自身の学習記録帳のため、乱雑な文章になっている可能性があります。
申し訳ございません。

最後までお読みいただき、ありがとうございます。
私も皆さんのnoteを拝見させて頂いて、多くの気づきを得ています。
本当に感謝🙏です。
今後ともよろしくお願いします。

この記事が気に入ったらサポートをしてみませんか?