[TypeScript] Mapped Types


Mapped Types


既存のタイプを使用して、他のタイプに変換できます.
type OptionsFlags<Type> = {
	[Property in keyof Type]: boolean;
};
type FeatureFlags = {
	darkMode: () => void;
    newUserProfile: () => void;
};

type FeatureOptions = OptionsFlags<FeatureFlags>;
  • OptionsFlagsがFeatureFlage typeのすべてのプロパティを取得し、値をbooleanに変更することができます.
  • Mapping Modifiers


    マッピングに適用できる追加修飾語はreadonlyと?2種類ある


    Further Exploration


    オブジェクトのpliがtrueに設定されている場合、条件タイプを使用してtrueを返すことができます.

    Use Mapped Type to implement a Proxy


    オブジェクト内のすべてのキーに対して、読み書き(get/set)関数を定義するタイプを作成する場合に使用します.

    REFERENCE

  • https://www.typescriptlang.org/docs/handbook/2/mapped-types.html
  • https://dev.to/mattzgg_94/typescript-use-mapped-type-to-implement-a-proxy-4im2