Есть функция, принимающая в качестве первого аргумента наименование поля объекта, а в качестве второго - функцию, в которую передается значение этого поля.
interface State {
count: number;
}
function foo(key: keyof State, callback(value: ?)=> {}) {
...
}
Как указать тип value в соответствии с переданым ключом?