I want to enforce copy
function to extends original
function. but the trick is – the order of params of fnGenerator
is opposite.
Can it be done?
function fnGenerator<Original extends Copy, Copy extends Function>(copy:Copy,original:Original){}
function original(props:{a?:number,z:number}):number { return 2}
function copy(props:{a:number}):number { return 1}
fnGenerator(copy,original) // right now `original` has complicatione error instead of `copy`.