Сопоставляемые типы
Сопоставляемые типы в TypeScript позволяют создавать новые типы на основе существующего типа, преобразуя каждое свойство с помощью функции сопоставления. Сопоставляя существующие типы, можно создавать новые типы, представляющие ту же информацию в другом формате. Чтобы создать сопоставляемый тип, обращаются к свойствам существующего типа с помощью оператора 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, но с каждым свойством в виде массива.