Sobes.tech

Frontend

/** * Schreibe die Typisierung für die Funktion getObjField * * @param obj - Das Objekt, aus dem der Wert extrahiert werden soll * @param key - Der Schlüssel des Wertes, der extrahiert werden soll * @returns Der Wert, der dem Schlüssel im Objekt entspricht */ type Obj = { name: string; age: number; }; const getObjField = <K extends keyof Obj>(obj: Obj, key: K): Obj[K] => { 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"); // Fehler: Argument vom Typ '"test"' ist nicht zuweisbar zum Parameter vom Typ 'keyof Obj'.

176

// Was wird in der Konsole ausgegeben const a = {}; const fn = (b) => { b.some = "1"; }; fn(a); console.log(a.some); // ?

171

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") const getObjField = <T, K extends keyof T>(obj: T, key: K) => { return obj[key] }

170

Was würdest du nehmen, wenn du eine komplexe Tabelle mit serverseitiger Paginierung, Sortierungen und Filtern erstellen müsstest?

166
/4