Przejdź do treści

    ↑↓ ruch · ⏎ otwórz · esc zamknij

    Operatory

    typeof

    Most od wartości do jej typu.

    Czym jest

    Typy i wartości mieszkają w osobnych przestrzeniach nazw, a `typeof` to jedyne przejście w jedną stronę. W pozycji typu znaczy „typ tej wartości”, co nie ma związku z javascriptowym `typeof` zwracającym tekst w czasie wykonania — ta sama pisownia, inne światy i jeden z niewielu prawdziwych kalamburów w języku.

    Przykłady

    • typeof config
      { retries: number; url: string; }
    • typeof send
      (to: string) => void
    • keyof typeof config
      "retries" | "url"

      Zestawienie, które będziesz pisać najczęściej: przejdź do świata typów, a potem weź klucze.

    Każdy rozwinięty typ powyżej wypisał TypeScript 5.9.3, nie ręka człowieka.

    Czego nie robi

    • Nie przyjmuje wyrażenia. `typeof foo.bar` działa, bo to odwołanie; `typeof foo()` nie, bo wywołanie czegoś nie jest wartością, którą da się nazwać.
    • Nie zawęża. `typeof` w pozycji typu czyta typ zadeklarowany, a nie to, do czego zmienna została zawężona w danym wierszu.

    Wniosek

    Gdy typ jest już doskonale opisany przez wartość, którą masz, nie pisz go po raz drugi. `typeof` nie pozwala im się rozjechać.