interface Person {
 name: string
 age: number
}

paims key

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

Leistinos reikšmės tik keyl

et key: PersonKeys = 'name'
key = 'age'

Negalima reikšmė:

key = 'job'
type User = {
 _id: number
 name: string
 email: string
 createdAt: Date
}

Kas lieka:

type UserKeysNoMeta1 = Exclude<keyof User, '_id' | 'createdAt'> // kas lieka: 'name' | 'email'

Kas išvardinta

type UserKeysNoMeta2 = Pick<User, 'name' | 'email'> // tik 'name' | 'email'
let u1: UserKeysNoMeta1 = 'name'

klaida

ul = '_id'