PayloadとArgumentの使い分け方
最終更新日: 2024-07-09記事投稿日: 2024-07-09
あらすじ
コードレビューにて「Hooksの引数の型に〇〇Payloadと名付けているがこれって適切なんだっけ?」と指摘を受けました👀
今までPayloadとArgumentの違いについて着目したことなかったなぁとおもったので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の命名が正しそうでした👍
(今後は意識していきたいし、改めて命名の奥深さを痛感した...)