Skip to content

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, но с всяко свойство като масив.