Funciones
NoInfer
Usa un tipo sin permitir que esa posición aporte candidatos de inferencia.
Qué es
Un freno intrínseco de inferencia. `NoInfer<T>` es el mismo tipo que `T` después de inferir, pero al resolver una llamada genérica esa posición se comprueba contra el resultado en vez de ayudar a elegirlo. Un argumento puede mandar y otro solo validarse.
Ejemplos
typeof selected→"red" | "green"NoInfer<1 | 2>
→2 | 1Fuera de la inferencia es exactamente el tipo envuelto; no lo estrecha, ensancha ni marca.
NoInfer<string>→string
Cada tipo resuelto de arriba lo imprimió TypeScript 6.0.3, no se escribió a mano.
Lo que no hace
- No desactiva la inferencia para todo el parámetro genérico. Las demás posiciones sin envolver siguen aportando candidatos.
- No es una aserción ni vuelve legal un valor inválido. La posición bloqueada se comprueba con más rigor contra el tipo inferido en otro lugar.
Conclusión
Usa `NoInfer` cuando un argumento debe determinar el genérico y otro solo demostrar que pertenece al resultado.
