Вспомогательные операторы

// keyof — получение имен полей 

interface Person {
    name: string
    age: number
}

type PersonKeys = keyof Person  // 'name' | 'age'

let key: PersonKeys = 'name'



// Создание типов из уже имеющихся — операторы Exclude и Pick
type User = {
    _id: number
    name: string
    email: string
    createdAt: Date
}

// Создаем новый тип, исключай поля _id и createdAt
type UserKeysNoMeta1 = Exclude<keyof User, '_id' | 'createdAt'>   // 'name' | 'email'
type UserKeysNoMeta2 = Pick<User, 'name' | 'email'>   // 'name' | 'email'

Last updated