TypeScript 7 reference · Type Operators and Keywords

TypeScript keyof Operator

Produce a union of an object type's property names: keyof { a: 1; b: 2 } is 'a' | 'b'.

TypeScript 7 Since 2.1

Create a free account to save this page, take notes and track your progress. Sign in

Syntax

keyof Type

Examples

Property names as a unionTry it yourself
interface User {
  id: number;
  name: string;
}
type UserKey = keyof User; // "id" | "name"
const k: UserKey = "name";
console.log(k);

Output

name
Type-safe property accessTry it yourself
function getField<T, K extends keyof T>(obj: T, key: K): T[K] {
  return obj[key];
}
const user = { id: 1, name: "Ana" };
console.log(getField(user, "name"));
// @ts-expect-error: "email" is not a key of user
getField(user, "email");

Output

Ana

Version history

VersionChange
TypeScript 2.1Added

Was this page helpful?