Open2
Typescriptのちょっとわからない文法をまとめる
使う機会が少なくて、「これなんだっけ?」みたいな文法をまとめる
infer
inferを知る前にまずGenerics
とConditional Types
を知った方が良さそう
Conditional Types(またまとめる)
Typescript公式より
TypeScript 2.8 introduces conditional types which add the ability to express non-uniform type mappings. A conditional type selects one of two possible types based on a condition expressed as a type relationship
inferとは
Type inference in conditional typesというものでConditional Types の構文の中で型をキャプチャ(取得)する機能
異なるプロパティをひとつに束ねる
type Value<T> = T extends () => Promise<infer U> ? U : never;
type Fetch<T> = () => Promise<Value<T>>;
-> <T> に付与される型の情報から Promise の持つ値が推論される
参考