Operesheni hizi mbili zinakuruhusu kupata aina kutoka kwa aina na thamani zilizopo — msingi wa programu ya kiwango cha aina (type-level programming).
keyof — muungano (union) wa funguo za aina ya object
interface User { id: ; : ; }
= keyof ;
Operesheni hizi mbili zinakuruhusu kupata aina kutoka kwa aina na thamani zilizopo — msingi wa programu ya kiwango cha aina (type-level programming).
interface User { id: ; : ; }
= keyof ;
const config = { host: "localhost", port: 3000 };
type Config = typeof config; // { host: string; port: number }
typeof (katika nafasi ya aina) hunasa aina iliyokisiwa ya thamani ya wakati wa utekelezaji (runtime value), hivyo hulazimiki kuandika aina kwa kujitegemea.
function getProp<T, K extends keyof T>(obj: T, key: K): T[K] {
return obj[key];
}
const user = { id: 1, name: "Ann" };
getProp(user, "name"); // returns string
getProp(user, "age"); // ❌ Error: "age" is not a key of user
Hapa K extends keyof T huzuia key kuwa funguo halisi tu, na T[K] (aina ya indexed access type) hurejesha aina kamili ya thamani kwa ufunguo huo. Makosa ya kuandika (typos) huwa makosa ya wakati wa kukusanya (compile errors).
const Roles = { Admin: "admin", User: "user" } as const;
type Role = typeof Roles[keyof typeof Roles]; // "admin" | "user"
keyof na typeof huunganisha ulimwengu wa thamani na ulimwengu wa aina.
Zinawezesha ufikiaji wa sifa salama kwa aina, kupata aina kutoka kwa config/constants (chanzo kimoja cha ukweli), na ni vipengele vya msingi vya aina za mapped na conditional.
Ni jinsi unavyoepuka kudumisha kwa mkono ufafanuzi wa aina sambamba.
Maktaba ya maswali ya mahojiano ya IT yenye majibu ya kina — kutoka Junior hadi Senior.
Changia