Funkcje
NoInfer
Używa typu, nie pozwalając tej pozycji dostarczać kandydatów do wnioskowania.
Czym jest
Wbudowany hamulec wnioskowania. `NoInfer<T>` jest tym samym typem co `T` po wnioskowaniu, lecz podczas rozwiązywania wywołania generycznego ta pozycja jest sprawdzana względem wyniku zamiast pomagać go wybierać. Jeden argument może być źródłem prawdy, a drugi tylko walidowany.
Przykłady
typeof selected→"red" | "green"NoInfer<1 | 2>
→2 | 1Poza wnioskowaniem jest dokładnie opakowanym typem; nie zawęża go, nie poszerza ani nie branduje.
NoInfer<string>→string
Każdy rozwinięty typ powyżej wypisał TypeScript 6.0.3, nie ręka człowieka.
Czego nie robi
- Nie wyłącza wnioskowania dla całego parametru generycznego. Inne nieopakowane pozycje nadal normalnie dostarczają kandydatów.
- Nie jest rzutowaniem i nie legalizuje niepoprawnej wartości. Zablokowana pozycja jest sprawdzana surowiej względem typu wywnioskowanego gdzie indziej.
Wniosek
Użyj `NoInfer`, gdy jeden argument ma wyznaczać generyk, a drugi tylko dowodzić, że pasuje do wyniku.
