While researching React stores automation, I wondered whether it would be possible to have a TypeScript function to set the value of an object by the name of its property, with correctly typed parameters, of course.
Turns out, it is
export function setField<
T extends object,
K extends keyof T,
>(o: T, k: K, v: T[K]): void {
o[k] = v;
}
The function above works perfectly with interfaces:
interface Person {
name: string;
age: number;
}
const p: Person = { name: 'Joe', age: 42 };
setField(p, 'name', 'foo');
No comments:
Post a Comment