В этой статье разберу только самые часто используемые, посмотреть все utility-типы можно в официальной документации.
typescript1type Person = { 2 name: string; 3 surname: string; 4 age: number 5} 6
Partial<T> Делает все ключи необязательными
typescript1type PartialPerson = Partial<Person> 2 3// то же самое, что 4type PartialPerson = { 5 name?: string; 6 surname?: string; 7 age?: number 8} 9
Required<T> Обратное действие Partial — делает все ключи обязательными
typescript1Required<Partial<Person>> === Person 2
Readonly<Type> Запрещает изменять поля объекта
typescript1const person: Readonly<Person> = { 2 name: "Denis", 3 surname: "Putnov", 4 age: 22 5} 6 7// ошибка, так как 8// person нельзя изменять, 9// только считывать (readonly) 10person.name = 'Денис' 11
Record<Keys, Values> Создаёт тип из ключей и значений, указанных отдельно
typescript1// ключи могут быть только строкой 2// значения - только числом 3type WordCounter = Record<string, number> 4 5type Status = 'success' | 'error' 6type StatusCounter = Record<Status, number> 7 8// то же самое, что и Record ранее 9type StatusCounter = { 10 success: number 11 error: number 12} 13
Pick<Type, Keys> Выбирает только нужные ключи из типа и возвращает новый тип
typescript1// из типа Person выбираем только свойства 2// name и surname 3type PersonName = Pick<Person, 'name' | 'surname'> 4 5// то же самое 6type PersonName = { 7 name: string 8 surname: string 9} 10
Omit<Type, Keys> Удаляет ненужные свойства из типа и возвращает новый тип
typescript1// Из типа Person исключаем свойство 'age' 2type PersonName = Omit<Person, 'age'>; 3 4// то же самое 5type PersonName = { 6 name: string 7 surname: string 8} 9
Parameters<Function> Возвращает тип параметров функции
typescript1type Foo = (a: number, b: number) => string 2type Params = Parameters<Foo> 3 4Params // [a: number, b: number] 5
ReturnType<Function> Возвращает тип возвращаемого параметра из функции
typescript1type Foo = (a: number, b: number) => string 2type Return = ReturnType<Foo> 3 4Return // string 5
Статья была полезной?
Читайте также:
— 2 минуты
JavaScript не в браузере: NodeJS, Deno и Bun
Начать стоит с того, что JavaScript может выполняться далеко не только в бр...
— 2 минуты
Как реагировать на изменения объекта
В JavaScript обычные объекты не умеют уведомлять о своих изменениях, однако...
— 3 минуты
Составные компоненты
Есть такой паттерн для реакта, который называется Compound Components. Это...