Unfortunately, the great answers to question Pass implicit keys and values type relationship to TypeScript generic does not cover