keyof āĻšāϞ⧠TypeScript-āĻāϰ āĻāĻāĻāĻŋ type operatorāĨ¤
āĻāĻāĻŋ āĻā§āύ⧠object type āĻāϰ āϏāĻŦ keys āĻŦā§āϰ āĻāϰ⧠āϤāĻžāĻĻā§āϰāĻā§ āĻāĻāĻāĻž union type āĻŦāĻžāύāĻžā§āĨ¤
type Person = {
name: string;
age: number;
city: string;
};
// keyof Person āĻŽāĻžāύā§:
type PersonKeys = keyof Person;
// => "name" | "age" | "city"- any â āϝā§āĻā§āύ⧠āĻāĻŋāĻā§ āĻšāϤ⧠āĻĒāĻžāϰā§, āĻāĻžāĻāĻĒ-āĻā§āĻ āύā§āĻāĨ¤
let x: any = 10;
x = "hello"; // allowed- unknown â āύāĻŋāϰāĻžāĻĒāĻĻ any, āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻāĻā§ āĻāĻžāĻāĻĒ-āĻā§āĻ āĻĻāϰāĻāĻžāϰāĨ¤
let y: unknown = "world";
if (typeof y === "string") {
console.log(y.toUpperCase());
}- never â āĻāĻŽāύ āĻāĻŋāĻā§ āϝāĻž āĻāĻāύ⧠āĻāĻāĻŦā§ āύāĻžāĨ¤
function fail(msg: string): never {
throw new Error(msg);
}