Typescript: Тип Omit
Расширенный тип Omit предназначен для определения нового типа путем исключения заданных признаков из существующего типа.
На одном из собеседований мне задали вопрос связанный с типом Omit и в этой статье я постараюсь раскрыть его смысл.
// lib.d.ts
type Omit<T, K extends string | number | symbol> = {
[P in Exclude<keyof T, K>]: T[P];
};
В качестве первого аргумента типа тип Omit ожидает тип данных, из которого будут исключены признаки, связанные с ключами, переданными в качестве второго аргумента типа.
Простыми словами, к помощи Omit следует прибегать в случаях необходимости определения типа, представляющего некоторую часть уже существующего типа.
Пример:
//example.ts
type Person = {
firstName: string;
lastName: string;
age: number;
};
/**
* Тип PersonName представляет только часть типа Person
*
* type PersonName = {
* firstName: string;
* lastName: string;
* }
*/
type PersonName = Omit<Person, 'age'>; // исключение признаков, связанных с полем age, из типа Person
Начать дискуссию