Przejdź do treści
NoInfer

    ↑↓ ruch · ⏎ otwórz · esc zamknij

    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 | 1

      Poza 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.