仕事ですぐに使えるTypeScriptを読んでいくその35
これは
TypeScriptの学習にとても役立ちそうなドキュメントを教えてもらったので
コツコツと読んでいく記事です。
参考
著作権者:フューチャー株式会社(Future Corporation)様
ジェネリクス
型変換のためのユーティリティ型
詳細は公式のハンドブックを見ると良いらしい。
オブジェクトと属性名に対するユーティリティ型
Tに対して別のプロパティを追加する方法として以下の三つがある。
・Record<K,T>:Tを子供の要素にもつMap型のようなKをキーとしたデータ型を作成
・Pick<T,K>:Tの中の特定のキーKだけを持つ型を作成
・Omit<T,K>:Tの中の特定のキーKだけを持たない型を作成
Record<K,T>を使ったハンドブックに記載されている例
interface PageInfo { title: string; } type Page = 'home' | 'about' | 'contact'; // PageをキーとしたPageinfoを子要素にもつRecord const x: Record<Page, PageInfo> = { about: { title: 'about' }, contact: { title: 'contact' }, home: { title: 'home' }, };
Pick<T,K>を使ったハンドブックに記載されている例
interface Todo { title: string; description: string; completed: boolean; } // title' | 'completed'をもつTodo型を作成 type TodoPreview = Pick<Todo, 'title' | 'completed'>; const todo: TodoPreview = { title: 'Clean room', completed: false, };
Omit<T,K>を使ったハンドブックに記載されている例
interface Todo { title: string; description: string; completed: boolean; } // descriptionキーを持たないTodo型を作成 type TodoPreview = Omit<Todo, 'description'>; const todo: TodoPreview = { title: 'Clean room', completed: false, };
今日はここまで。