メインコンテンツまでスキップ

Type Techniques

TypeScriptの型テクニックについて記す。

Objectから該当する型のキーを取得する型定義

純正にUnion Typesとして取得できる。

type Keys = KeysOfType<{
id: number;
name: string;
email: string;
}, 'id'>;
// Keys = "name" | "email"
const key1: Keys = 'name';
const key2: Keys = 'email';

UndefinedなプロパティをOptionalに変換する

仕組みとしてはObjectからundefinedを含まないプロパティを抽出したものと、undefinedを含むプロパティを抽出しPartialでラップしたものを合成することで実現。