ts
#typescript

keyof adalah operator yang menghasilkan union type dari semua kunci (keys) yang ada dalam suatu object. Ini sangat berguna ketika kita ingin membatasi nilai ke salah satu kunci objek tertentu.

// @errors: 2345
function keyofConstraints<T extends object, K extends keyof T>(obj: T, key: K) {
  return obj[key]
}

const a = keyofConstraints({ name: 'ubay', age: 20 }, 'name')
console.log(a) // ubay
const aa = keyofConstraints({ name: 'ubay', age: 20 }, 'ages')