TypeScriptでオブジェクトリテラルを使って省略可能なパラメータを渡す

2024-04-02

TypeScriptで省略可能なパラメータを渡す方法

デフォルト値

パラメータにデフォルト値を設定することで、そのパラメータを省略できます。

function greet(name: string, message?: string) {
  console.log(`Hello, ${name}! ${message || "How are you?"}`);
}

greet("John"); // "Hello, John! How are you?"
greet("Jane", "Good morning!"); // "Hello, Jane! Good morning!"

この例では、messageパラメータはデフォルト値"How are you?"が設定されているので、省略しても問題ありません。

undefined

省略可能なパラメータにundefinedを渡すことで、そのパラメータを省略できます。

function greet(name: string, message?: string) {
  console.log(`Hello, ${name}! ${message || "How are you?"}`);
}

greet("John", undefined); // "Hello, John! How are you?"

この例では、messageパラメータにundefinedを渡しているので、省略されたものと同じように処理されます。

オブジェクトリテラル

複数の省略可能なパラメータをまとめて渡す場合は、オブジェクトリテラルを使うことができます。

function greet(name: string, options?: { message?: string, age?: number }) {
  console.log(`Hello, ${name}! ${options?.message || "How are you?"}`);
  console.log(`Your age is ${options?.age || "unknown"}`);
}

greet("John", { message: "Good morning!" }); // "Hello, John! Good morning!"
greet("Jane", { age: 30 }); // "Hello, Jane! How are you? Your age is 30"

この例では、optionsパラメータはオブジェクトリテラルで渡されます。messageageはどちらも省略可能で、省略された場合はデフォルト値が使用されます。

デストラクチャリング

オブジェクトリテラルと同様に、デストラクチャリングを使って省略可能なパラメータを個別に渡すこともできます。

function greet(name: string, { message = "How are you?", age }?: { message?: string, age?: number }) {
  console.log(`Hello, ${name}! ${message}`);
  console.log(`Your age is ${age}`);
}

greet("John", { message: "Good morning!" }); // "Hello, John! Good morning!"
greet("Jane", { age: 30 }); // "Hello, Jane! How are you? Your age is 30"

TypeScriptで省略可能なパラメータを渡す方法はいくつかあります。どの方法を使うかは、状況によって異なります。

  • シンプルな場合は、デフォルト値を使うのがおすすめです。
  • 個別にパラメータを渡したい場合は、デストラクチャリングを使うのがおすすめです。

これらの方法を理解することで、TypeScriptでより柔軟なコードを書くことができます。




function greet(name: string, options?: { message?: string, age?: number }) {
  console.log(`Hello, ${name}! ${options?.message || "How are you?"}`);
  console.log(`Your age is ${options?.age || "unknown"}`);
}

// デフォルト値
greet("John"); // "Hello, John! How are you?"

// undefined
greet("Jane", undefined); // "Hello, Jane! How are you?"

// オブジェクトリテラル
greet("John", { message: "Good morning!" }); // "Hello, John! Good morning!"
greet("Jane", { age: 30 }); // "Hello, Jane! How are you? Your age is 30"

// デストラクチャリング
greet("John", { message: "Good morning!" }); // "Hello, John! Good morning!"
greet("Jane", { age: 30 }); // "Hello, Jane! How are you? Your age is 30"

このコードを参考に、TypeScriptで省略可能なパラメータをうまく活用してください。




? 演算子を使って、パラメータがundefinedかどうかをチェックし、undefinedの場合はデフォルト値を設定することができます。

function greet(name: string, message?: string) {
  console.log(`Hello, ${name}! ${message ? message : "How are you?"}`);
}

greet("John"); // "Hello, John! How are you?"
greet("Jane", "Good morning!"); // "Hello, Jane! Good morning!"

この例では、messageパラメータがundefinedかどうかをチェックし、undefinedの場合は"How are you?"を返しています。

function greet(name: string, message?: string) {
  console.log(`Hello, ${name}! ${message || "How are you?"}`);
}

greet("John"); // "Hello, John! How are you?"
greet("Jane", "Good morning!"); // "Hello, Jane! Good morning!"

型ガードを使って、パラメータの型をチェックし、型によって処理を変えることができます。

function greet(name: string, message?: string) {
  if (typeof message === "string") {
    console.log(`Hello, ${name}! ${message}`);
  } else {
    console.log(`Hello, ${name}! How are you?`);
  }
}

greet("John"); // "Hello, John! How are you?"
greet("Jane", "Good morning!"); // "Hello, Jane! Good morning!"

この例では、messageパラメータがstring型かどうかをチェックし、string型の場合はメッセージを表示しています。

上記で紹介した方法は、いずれも省略可能なパラメータを渡すための方法です。どの方法を使うかは、状況によって異なります。

  • 複雑な処理が必要な場合は、型ガードを使うのがおすすめです。

typescript


TypeScript ?. 演算子:null または undefined の可能性がある値に安全にアクセスする方法

?. 演算子は、オプションチェーン演算子と呼ばれる演算子で、null または undefined の可能性がある値に対して安全にアクセスするための便利な機能です。?. 演算子は、プロパティやメソッドのチェーン呼び出しにおいて、null または undefined の可能性がある中間オブジェクトを安全に処理するために使用されます。...


TypeScriptで開発をもっと快適に!.tsと.d.tsファイルを使いこなすためのガイド

*1. .tsファイル:TypeScriptソースコードを含むファイルです。変数、関数、クラス、インターフェースなどのプログラム要素を定義します。プログラミングロジックを実装します。ブラウザやNode. jsで直接実行することはできません。...


TypeScript 型エイリアスとは?

型エイリアスは、既存の型に新しい名前を割り当てることができる機能です。これにより、コードをより読みやすく、理解しやすくなります。上記の例では、number 型に MyNumber という名前を割り当てています。これにより、number 型の変数を宣言する際に、より分かりやすい名前を使用することができます。...


TypeScriptとAngularでHTTP POSTリクエストを送信する方法

Angular 2 で使用できる 2 種類のパラメーターがあります。URL パラメーター: リクエスト URL に追加されるパラメーターです。例: https://example. com/api/users?id=123リクエスト ボディ: リクエストの本文に含まれるパラメーターです。これは、JSON またはフォームエンコードされたデータなど、さまざまな形式で送信できます。...


TypeScript:空オブジェクト型変数を使いこなしてコードをレベルアップ

最もシンプルで分かりやすい方法です。空のオブジェクトリテラルを直接型注釈として使用します。メリット簡潔で分かりやすい初心者でも理解しやすいオブジェクトにどのようなプロパティが追加できるかが不明確型チェックが弱く、誤った値が代入される可能性がある...