仕事ですぐに使えるTypeScriptを読んでいくその36

これは

TypeScriptの学習にとても役立ちそうなドキュメントを教えてもらったので
コツコツと読んでいく記事です。

参考

著作権者:フューチャー株式会社(Future Corporation)様

future-architect.github.io

ジェネリクス

型変換のためのユーティリティ型

詳細は公式のハンドブックを見ると良いらしい。

www.typescriptlang.org

型の集合演算のユーティリティ型

昨日のRecordなどは特定の情報に絞った型を作るようなものでした。
今日は特定の条件に合わせたUnion Typeを作る方法になります。

 ・Exclude<T,U>: T のUnion Typeから、 U のUnion Typeの構成要素を除外したUnion Typeを作る型
 ・Extract<T,U>: T のUnion Typeと、 U のUnion Typeの両方に含まれるUnion Typeを作る型
 ・NonNullable: T のUnion Typeから、 undefined を抜いたUnion Typeを作る型

Exclude<T,U>の例

// aを取り除いたUnionTypeをT0として作成
type T0 = Exclude<"a" | "b" | "c", "a">; 

// bを取り除いたUnionTypeをT1として作成
type T1 = Exclude<"a" | "b" | "c", "a" | "b">; 

type T2 = Exclude<string | number | (() => void), Function>;  // string | number

Extract<T,U>の例

// aの要素UnionTypeをT0として作成
type T0 = Extract<"a" | "b" | "c", "a" | "f">; 

type T1 = Extract<string | number | (() => void), Function>;  // () => void

NonNullableの例

// undefined(未定義)を抜いたUnionTypeを作成
type T0 = NonNullable<string | number | undefined>;
type T1 = NonNullable<string[] | null | undefined>; 

undefinedよくわからなかったので調べた。
JSのプリミティブ型で値が未定義であることを表します。 つかってたのはNonNullableってことなので、NULL非許容ってことなんだろう。

js.studio-kingdom.com

今日はここまで。