infer
infer работает в связке с условными типами, которые позволяют создавать типы, зависящие от других типов.
Когда вы используете infer в условном типе, TypeScript пытается вывести конкретный тип из заданного типа. Например, если вы работаете с массивом, infer может вывести тип элементов массива.
123456type ElementType<T> = T extends (infer U)[] ? U : T;type Arr = numbe[];type Num = ElementType<Arr>; // Num будет numbertype Str = ElementType<string>; // Str будет string