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