Concept Flow - Keyof operator
Define Interface
Apply keyof Operator
Get Union of Keys
Use Keys as Type
Access Object Properties Safely
The keyof operator takes an object type and produces a union of its keys as string literal types.
interface Person {
name: string;
age: number;
}
type PersonKeys = keyof Person;
let key: PersonKeys = "name";| Step | Action | Evaluation | Result |
|---|---|---|---|
| 1 | Define interface Person with keys 'name' and 'age' | Person = {name: string, age: number} | Interface created |
| 2 | Apply keyof Person | keyof Person | "name" | "age" (union type) |
| 3 | Declare variable key of type PersonKeys | key: "name" | "age" | Variable declared |
| 4 | Assign "name" to key | key = "name" | Valid assignment |
| 5 | Try assign "height" to key | key = "height" | Error: Type '"height"' is not assignable to type '"name" | "age"' |
| Variable | Start | After Step 4 | After Step 5 |
|---|---|---|---|
| key | undefined | "name" | Error (invalid assignment) |
keyof operator syntax: keyof Type Produces a union of string literal types representing keys of Type. Used to get valid property names of an object type. Helps ensure safe property access and type checking. Example: type Keys = keyof Person; // "name" | "age"