Пропустить до содержимого

Сопоставляемые типы

Сопоставляемые типы в 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, но с каждым свойством в виде массива.