2021年2月
汎用的な型変換の必要性 GenericsとType Genericsに登場するinfer 具体例 複雑化する型の変換 まとめ
//Tがstringだったらnumber、それ以外ならbooleanに変換type Test01<T> = T extends string ? number : booleantype Test01A = Test01<string> //numbertype Test01B = Test01<object> //boolean//Tに関係なく、問答無用でnumberに変換(unknownはanyでも可)type Test02<T> = T extends unknown ? number : booleantype Test02A = Test02<string> //numbertype Test02B = Test02<object> //number//変換元interface01interface TestIf01 { a: { a0: number } b: { b0: number }}//特定の部分を取り出すtype Test03<T> = T extends { a: infer R } ? R : nevertype Test03A = Test03<TestIf01> //{a0:number}//キーを削除して値だけ取り出すtype Test04<T> = T extends { [_ in keyof T]: infer R } ? R : nevertype Test04A = Test04<TestIf01> //{a0:number} {b0:number}//共用体型を直交型に変換type Test05<T> = (T extends any ? (_: T) => void : never) extends (_: infer I) => void ? I : nevertype Test05A = Test05<Test04A> //{a0:number} & {b0:number}//変換元interface02interface TestIf02 { 200: { token: string } 500: { err: string }}//構造を整形するtype Test06<T> = T
2021年2月
「ブログリーダー」を活用して、空雲さんをフォローしませんか?
指定した記事をブログ村の中で非表示にしたり、削除したりできます。非表示の場合は、再度表示に戻せます。
画像が取得されていないときは、ブログ側にOGP(メタタグ)の設置が必要になる場合があります。