Mapped типове
Mapped типовете в TypeScript позволяват създаване на нови типове на базата на съществуващ тип чрез трансформиране на всяко свойство с помощта на mapping функция. Чрез mapping на съществуващи типове могат да се създадат нови типове, които представят същата информация в различен формат. За създаване на mapped тип се достъпват свойствата на съществуващ тип чрез оператора keyof, след което те се променят, за да се създаде нов тип.
В следния пример:
type MyMappedType<T> = { [P in keyof T]: T[P][];};type MyType = { foo: string; bar: number;};type MyNewType = MyMappedType<MyType>;const x: MyNewType = { foo: ['hello', 'world'], bar: [1, 2, 3],};дефинираме MyMappedType, който обхожда свойствата на T и създава нов тип, при който всяко свойство е масив от оригиналния си тип. По този начин създаваме MyNewType, който представя същата информация като MyType, но с всяко свойство като масив.