Przejdź do treści

    ↑↓ ruch · ⏎ otwórz · esc zamknij

    Operatory

    keyof

    Unia kluczy typu.

    Czym jest

    Jeden z dwóch operatorów, z których zbudowane jest każde przekształcenie obiektu — `keyof` wyciąga klucze, dostęp indeksowany odczytuje wartości. Wynikiem jest unia typów literalnych w nieokreślonej kolejności i celowo nie da się poprosić o „pierwszy klucz”: kolejność nie jest tym, co typ obiektu gwarantuje.

    Przykłady

    • keyof User
      keyof User
    • keyof { a: 1 }
      "a"
    • keyof string[]
      keyof string[]

      Tablica ma jako klucze wszystkie metody tablicy plus `number`. Rzadko o to chodzi — chodzi o `T[number]`.

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

    Czego nie robi

    • Nie daje uporządkowanej listy. Kolejność kluczy obiektu nie jest częścią typu, więc nic nie może na niej polegać.
    • Nie pomija składowych dziedziczonych ani wbudowanych. `keyof` tablicy albo instancji klasy obejmuje wszystko, co typ deklaruje, razem z metodami.

    Wniosek

    Sięgaj po `keyof T`, gdy chcesz nazwy, i po `T[keyof T]`, gdy chcesz wartości. Niemal każdy typ mapowany zaczyna się od jednego z tych dwóch.