これは
TypeScriptの学習にとても役立ちそうなドキュメントを教えてもらったので
コツコツと読んでいく記事です。
参考
著作権者:フューチャー株式会社(Future Corporation)様
ジェネリクス
型変換のためのユーティリティ型
詳細は公式のハンドブックを見ると良いらしい。
型の集合演算のユーティリティ型
昨日の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
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非許容ってことなんだろう。
今日はここまで。