Đây là các công cụ lập trình ở cấp độ type (type-level programming) của TypeScript — chúng tính toán ra các type mới từ các type hiện có.
Mapped type — biến đổi từng property
Một mapped type lặp qua các key của một type và biến đổi từng key:
<T> = { [K keyof T]: T[K] };
<T> = { [K keyof T]?: T[K] };
{ : ; : ; }
= <>;
