Mapped types w TypeScript to sposób tworzenia nowych typów na podstawie istniejących. Pozwalają one na tworzenie typów, które modyfikują właściwości obiektów lub innych typów na podstawie określonych reguł. Przykład użycia mapped types:
type Person = { name: string, age: number, address: string }; type ReadOnlyPerson = { readonly [K in keyof Person]: Person[K] }; // ReadOnlyPerson będzie miało wszystkie właściwości typu 'Person', ale będą one tylko do odczytu.
Mapped types są przydatne w przypadkach, gdy potrzebujemy generować różne warianty typu na podstawie jednego typu bazowego, np. przy tworzeniu różnych wersji obiektów lub stanów.