+/-readonlyと+/-?を使ったMapped Types
Mapped Typesと修飾子(+/-readonly、+/-optional)を使い、オブジェクト形状の柔軟なバリエーションを作成します
「+/-readonlyと+/-?を使ったMapped Types」はCoddyKit上の無料TypeScript Academyレッスンです。 これはレッスン1/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはTypeScript Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 TypeScript Academyコースには全3レッスンが含まれています。
概要
目標: 修飾子を使ったマップ型を学び、オブジェクトのプロパティを体系的に変更します。これにより、型の readonly 版、オプショナル版、必須版を作成できます。
基本的なマップ型
マップ型はキーを反復処理し、プロパティの型を再利用します。これが変換の基礎になります。
type Options = { a: string; b: number }
type Clone<T> = { [K in keyof T]: T[K] }
type Copy = Clone<Options> // { a: string; b: number }readonly を追加
+readonly を使用して変更不可にします。すべてのプロパティが readonly になります。
type ReadonlyT<T> = { [K in keyof T]+readonly: T[K] }
interface User { id: number; name: string }
type Locked = ReadonlyT<User> // all props readonlyreadonly を削除
-readonly を使用して変更不可の指定を取り除き、再び変更可能にします。
type Mutable<T> = { [K in keyof T]-readonly: T[K] }
type Editable = Mutable<Locked> // props writable againオプショナルを追加
プロパティの後ろに ? を付けると、そのプロパティはオプショナルになります。設定の更新に便利です。
type PartialT<T> = { [K in keyof T]?: T[K] }
interface Settings { dark: boolean; lang: string }
type Maybe = PartialT<Settings> // props optionalオプショナルを削除
-? を使用してオプショナル指定を取り除き、プロパティの存在を必須にします。
type RequiredT<T> = { [K in keyof T]-?: T[K] }
type Strict = RequiredT<Maybe> // props required againreadonly の削除を確認
簡単な確認: プロパティから readonly を削除するマップ型の構文はどれですか。
振り返り
振り返り: マップ型を使うと、プロパティ全体に変換を適用できます。+/-readonly と +/-? で変更可能性とオプショナル性を操作します。これは Partial、Required、Readonly の基礎です。
よくある質問
「+/-readonlyと+/-?を使ったMapped Types」レッスンは無料ですか?
はい。「+/-readonlyと+/-?を使ったMapped Types」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、TypeScript Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 TypeScript Academyコースには全3レッスンが含まれています。
「+/-readonlyと+/-?を使ったMapped Types」で何を学びますか?
Mapped Typesと修飾子(+/-readonly、+/-optional)を使い、オブジェクト形状の柔軟なバリエーションを作成します ブラウザで直接実行するハンズオンコードでTypeScript Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
TypeScript Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのTypeScript Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/3です。
「+/-readonlyと+/-?を使ったMapped Types」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このTypeScript Academyレッスンでコードを書いて実行できますか?
はい。すべてのTypeScript Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- +/-readonlyと+/-?を使ったMapped Types
- キーの再マッピングとテンプレートリテラル型
- 文字列パターンの型付け(ルートパラメーター、イベント名)