NITS TIPS

~微塵集合知巧~

PayloadとArgumentの使い分け方

最終更新日: 2024-07-09記事投稿日: 2024-07-09

nobumitsu-1995のgithubトップ

Frontend developer

nobumitsu-1995


あらすじ

コードレビューにて「Hooksの引数の型に〇〇Payloadと名付けているがこれって適切なんだっけ?」と指摘を受けました👀

今までPayloadArgumentの違いについて着目したことなかったなぁとおもったのでChatGPTに聞いてみました。

出力結果

TypeScriptで「Payload」と「Argument」は異なるコンテキストで使われることが多いですが、しばしば似たような意味合いで使われることもあります。以下にそれぞれの使われ方について説明します。

Argument

「Argument(引数)」は関数やメソッドに渡される値を指します。関数を呼び出す際に、関数のパラメーターに対応して渡される値のことです。

function greet(name: string): string {
  return Hello, ${name}!;
}

const message = greet("Alice");  // "Alice"が引数として渡される

この場合、「Alice」は`greet`関数の引数です。

Payload

「Payload(ペイロード)」は、特定のコンテキストでデータの運搬や送信される実際のデータを指します。例えば、ネットワークリクエストやイベントに関連するデータのことを指す場合が多いです。

interface ApiResponse {
  status: string;
  payload: {
    data: any;
    message: string;
  };
}

const response: ApiResponse = {
  status: "success",
  payload: {
    data: { id: 1, name: "Alice" },
    message: "User data retrieved successfully"
  }
};

この場合、`payload`はサーバーから返されるデータ全体を指します。

使い分けのまとめ

  • Argument: 関数やメソッドに渡される個々の値。
  • Payload: 通常、ネットワークリクエストやイベントで送受信されるデータの集合。

両者は用途やコンテキストに応じて使い分けられますが、特定のコンテキストでは意味が重なることもあります。特に、複雑なデータ構造を扱う場合や、データの受け渡しが行われる場合には、「Payload」がよく使われます。

感想

なるほど、確かにPayloadはRedux周りの実装とかAPI通信周りの実装でよく見かける印象だったが

ネットワークリクエストやイベントで送受信されるデータの集合。

であるなら、腑に落ちるなぁと思った🤔

今回レビューで指摘を受けた箇所については単に「Hooksの引数」にあたる部分だったのでArgumentの命名が正しそうでした👍

(今後は意識していきたいし、改めて命名の奥深さを痛感した...)


関連記事

  • 最終更新日: 2024-04-07記事投稿日: 2024-04-07

    テンプレートリテラル型で引数が「/」で始まっているかチェックする

    テンプレートリテラル型を使用することで引数が「/」で始まっているかをチェックすることができます。これによって引数にURLを受け取る関数などで、起こるエラーを回避することができます。

  • 最終更新日: 2024-04-08記事投稿日: 2024-03-31

    丸め誤差に対応した計算方法

    コンピュータによる浮動小数点型の数値計算などで現れる丸め誤差。そんな丸め誤差に対応した数値計算のコードをjavascriptで書く方法を紹介します。

  • 最終更新日: 2024-08-06記事投稿日: 2024-08-06

    ARIA属性を活用したアクセシブルなモーダル実装

    アクセシブルなmodalを実装するために必要なaria属性が意外と多い。参考となるコードをメモとして残しておきたい。

  • 最終更新日: 2024-07-27記事投稿日: 2024-07-27

    swiper/reactで実装したカルーセルをTAB操作した時、画面に描画されていないスライドにフォーカスが当たってしまう

    swiper/reactで実装したカルーセルをTABキーで操作した時、画面に描画されていないスライドにもフォーカスが当たってしまう問題があり、それの修正対応をしたので備忘録として残しておく。