6.3. Utility Types
6.3.1. Partial
💡
Partial используется для создания нового типа данных на основе существующего типа, делая все его свойства
необязательными
partial.ts
type User = {
name: string
age: number
isMarried: boolean
}
type Utility = Partial<User>
6.3.2. Required
💡
Required используется для создания нового типа данных на основе существующего типа, делая все его свойства
обязательными
required.ts
type User = {
name?: string
age?: number
isMarried?: boolean
}
type Utility = Required<User>
6.3.3. Omit
💡
Omit используется для создания нового типа данных на основе существующего типа, исключая определенные свойства
из исходного типа
omit.ts
type User = {
name: string
age: number
isMarried: boolean
}
type Utility = Omit<User, 'name' | 'isMarried'>
6.3.4. Pick
💡
Pick используется для создания нового типа данных на основе существующего типа, выбирая определенные свойства из
исходного типа
pick.ts
type User = {
name: string
age: number
isMarried: boolean
}
type Utility = Pick<User, 'name' | 'age'>
6.3.5. Record
💡
Record используется для создания нового типа данных, представляющего объект, где ключи (свойства) имеют определенный
тип данных и ассоциированы с другим типом данных.
- Это полезно, когда вам нужно создать тип, который описывает структуру объекта с определенными ключами и типами значений.
- Синтаксис Record выглядит следующим образом
record.ts
type MyRecord = Record<Keys, Values>;
- Keys - это тип для ключей (свойств) объекта.
- Values - это тип для значений, соответствующих ключам.- Примеры использования Record
record.ts
// ❌
type TasksState = {
[key: string]: Task[]
}
// ✅
type TasksState2 = Record<string, Task[]>
// Как типизировать объект в котором свойства и значения могут быть любые ?
const Object = {
a1: 'a1',
b2: 2,
c9: true,
}
type Object = Record<string, unknown>