interface Person { age: number; name: string; } const me: Person = { age: 0, name: '', }; const setter = <T extends keyof Person>(key: T, value: Person[T]): void => { me[key] = value; }; setter("name", 'as');