want to create simple generic interface for function, that accepts interface of object and first argument is key of object and second is key2 of object by object[key].
Here my solution
type Test<T extends Object, K extends keyof T = keyof T, V extends keyof T[K] = keyof T[K]> = (key: K, key2: V) => void
Object
const convertFunctionsMap = {
ms: {
h: millisecondsToHours,
s: millisecondsToSeconds,
m: millisecondsToMinutes
},
s: {
h: secondsToHours,
ms: secondsToMilliseconds,
m: secondsToMinutes
},
m: {
ms: minutesToMilliseconds,
s: minutesToSeconds,
h: minutesToHours
},
h: {
ms: hoursToMilliseconds,
s: hoursToSeconds,
m: hoursToMinutes
}
}
But I got
CodeSandbox: https://codesandbox.io/s/empty-leaf-cuz51r?file=/src/index.ts
