Połączenie operatora keyof oraz typu any może na pierwszy rzut oka wyglądać dziwnie. Skoro any reprezentuje dowolny typ, to co właściwie jest jego kluczami?
Okazuję się, że wynikiem zestawienia tych dwóch słów jest unia typów: string | number | symbol. Jeżeli chwilę się nad tym zastanowimy, to dojdziemy do wniosku, że są to typy, które mogą zostać użyte jako klucze w obiekcie w JavaScript oraz TypeScript.
A zatem keyof any zwraca unię typów, które bezpiecznie możemy zastosować jako klucze obiektu. Kiedy może się to okazać przydatne?
jako ograniczenie typu generycznego (artykuł na temat typów generycznych znajdziesz tutaj)
podczas tworzenia typu opisującego dowolny obiekt (typ mapowany, który zastosowałem w przykładzie szerzej opisuję w tym artykule)
do opisania tablicy, która pasuje do metody
Object.fromEntries()
Zastosowań jest wiele, a te które wymieniłem, z pewnością nie wyczerpują tematu.