infer viene utilizzato all'interno di un conditional type per catturare (estrarre) un tipo da un altro tipo in una nuova variabile di tipo che puoi quindi utilizzare. È pattern-matching per i tipi.
<T> = T (infer U)[] ? U : ;
A = <[]>;
B = <[]>;
