Middle+
/ getObjField функциясына типизация жазу / type Obj = { name: string age: number } const getObjField = (obj: any, key: any) => { return obj[key] } const user: Obj = { name: "Nik", age: 25 } const value1 = getObjField(user, "name") const value2 = getObjField(user, "age") const value3 = getObjField(user, "test")
sobes.tech AI
AI-дан жауап
getObjField функциясын типтеу үшін, ол объект пен сол объектіден кілт қабылдап, сәйкес типтегі мәнін қайтаруы үшін, TypeScript-те генерарик және keyof операторын қолдануға болады:
interface Obj {
name: string;
age: number;
}
const getObjField = <T, K extends keyof T>(obj: T, key: K): T[K] => {
return obj[key];
}
const user: Obj = { name: "Nik", age: 25 };
const value1 = getObjField(user, "name"); // string
const value2 = getObjField(user, "age"); // number
// const value3 = getObjField(user, "test"); // Қате компиляция: "test" Obj-тің кілті емес
Бұл тәсіл кілт объектте бар екеніне кепілдік береді және қайтарылатын тип өрістің типіне сәйкес келеді.