【入門編】 PartialとRequiredの活用 – TypeScript実践ガイド

こんにちは。TypeScriptの海へようこそ。

「型」という言葉を聞くだけで、なんだか堅苦しくて難しそう……と身構えてしまう気持ち、痛いほどよくわかります。でも、大丈夫。TypeScriptは決してあなたを縛り付けるための檻ではなく、むしろ「コードを書くあなたの未来のミスを防いでくれる、最高に優秀な守護神」なんです。

今日は、TypeScriptを使いこなす上で避けては通れない、けれど使いこなすと最高に気持ちいい「魔法のスパイス」のような機能、`Partial` と `Required` についてお話ししますね。

—

1. まずはイメージから。「お買い物リスト」で考えてみよう

例えば、あなたがスーパーで買う「お買い物リスト」を作るとします。

  • 卵(必須)
  • 牛乳(必須)
  • キャベツ(必須)

これらが揃っていないと料理が作れないなら、すべて「必須」ですよね。でも、もしこれが「あったらいいなリスト(欲しいものリスト)」だったらどうでしょう? 卵はあってもなくてもいいし、牛乳も気が向いた時でいい。

TypeScriptの `Partial` と `Required` は、まさにこの「必須か、任意(なくてもいいか)か」を自由自在に切り替えるスイッチなんです。

—

2. Partial:すべてを「なくてもOK」にする魔法

`Partial` は英語で「部分的な」という意味。これを使うと、オブジェクトの中身が全部「あってもなくてもいい(オプショナル)」に早変わりします。

例えば、ユーザーのプロフィール編集画面を想像してみてください。名前は変えるかもしれないけれど、住所は変えないかもしれない。そんな時、全部の項目を必須にしてしまうと、「名前だけ変えたいのに、住所も全部入力してよ!」とシステムに怒られてしまいますよね。

そんな時に `Partial` の出番です。

// ユーザーの型定義(基本は全部入力してほしい)
interface User {
name: string;
age: number;
email: string;
}

// 編集用の型を「Partial」で作る
// これで name, age, email すべてが「なくてもいい(? がつく)」状態になります
type PartialUser = Partial;

const editData: PartialUser = {
name: “たろう” // 名前だけ変えたい!他の項目は書かなくてもエラーになりません
};

ここがポイント: `Partial` を使うことで、「更新したいところだけ送ればOK」という柔軟なAPI通信などが劇的に書きやすくなります。

—

3. Required:すべてを「絶対書け!」にする強制力

逆に、`Required` は「必須」にする魔法です。

たまに、設定ファイルなどで「一部は書かなくてもデフォルト値が入るけど、この機能を使う時は全部の項目をきっちり埋めてほしい!」という場面に出くわします。そんな時、`Required` を使えば、うっかり入力を忘れた時にTypeScriptが即座に「ここが足りないよ!」と教えてくれます。

interface Settings {
theme?: string; // ?がついているので、書かなくてもいい
fontSize?: number; // これも書かなくてもいい
}

// 厳密な設定用として、Requiredで強制的に必須にする
type StrictSettings = Required;

const mySettings: StrictSettings = {
theme: “dark”,
fontSize: 16
// もしここで fontSize を書き忘れると、TypeScriptが即座に赤線を引いて怒ってくれます!
};

—

4. 現場のリアルな悩み:なぜこれを使うの?

「最初からインターフェースをちゃんと書けばいいじゃない?」と思うかもしれません。鋭い指摘です!

でも、実際の開発現場では「データは生き物」なんです。
サーバーから受け取った時は空っぽかもしれないデータ、フォームに入力する時は途中経過かもしれないデータ……。同じ「ユーザー」という概念でも、場面によって「必須か・任意か」はコロコロ変わります。

そのたびに似たような型を何個も作っていると、後で「あ、ここも必須にしたかった!」となった時に修正が地獄になります。`Partial` や `Required` を使えば、元の型をベースにして、必要な時だけ「ちょっと変える」ことができるので、コードが驚くほどスッキリし、メンテナンスも楽になるんです。

—

最後に:つまずいても大丈夫

ここまで読んでみて、「なんとなくわかったけど、実際に使うとき迷いそう……」と感じたなら、それで100点満点です。

最初は誰だって、どの型を使えばいいのか迷います。そんな時は、「このデータは、今は一部だけあればいいかな? それとも全部揃ってないと困るかな?」と、自分に問いかけてみてください。

その「問いかけ」こそが、TypeScriptの型をただの記号から、あなたの頼れる相棒へと変える第一歩です。

焦らず、少しずつ。あなたのコードが、昨日よりも今日、少しだけ「守られた」ものになりますように。何かあればいつでも聞いてくださいね。応援しています!

コメント

タイトルとURLをコピーしました