Operatory
T[K]
Odczytuje typ właściwości z typu obiektu.
Czym jest
Druga połowa `keyof`. Przyjmuje typ klucza — nie *nazwę* klucza, tylko typ — i dlatego można mu podać unię, a on odpowie unią. Ten jeden fakt sprawia, że `T[keyof T]` znaczy „wszystkie typy wartości” bez żadnej iteracji.
Przykłady
User['id']→numberUser['id' | 'name']
→string | numberUser[keyof User]→string | number | booleanWszystkie typy wartości naraz — i powód, dla którego prawie nigdy nie trzeba iterować, by je zebrać.
Każdy rozwinięty typ powyżej wypisał TypeScript 5.9.3, nie ręka człowieka.
Czego nie robi
- Nie używa notacji z kropką. `User.id` nie jest typem — dostęp indeksowany zapisuje się zawsze nawiasami i *typem* klucza, więc `User["id"]` w cudzysłowie.
- Nie toleruje klucza, którego nie potrafi zweryfikować. Indeksowanie nieograniczonym parametrem typu to TS2536, a naprawą jest ograniczenie, nie rzutowanie.
Wniosek
`T[number]` na krotce albo tablicy daje typ elementu — ta sama sztuczka zastosowana do liczbowego zbioru kluczy. To najprzydatniejszy dostęp indeksowany, jaki istnieje.