0Pricing
TypeScript Academy · レッスン

+/-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 readonly

readonly を削除

-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 again

readonly の削除を確認

簡単な確認: プロパティから 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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. +/-readonlyと+/-?を使ったMapped Types
  2. キーの再マッピングとテンプレートリテラル型
  3. 文字列パターンの型付け(ルートパラメーター、イベント名)
← TypeScript Academyに戻る