Как создать функцию с универсальными параметрами в Typescript?

#typescript

#машинописный текст

Вопрос:

Код-это:

 type Alt;T extends {}, K extends {}gt; = T amp; K; type GetKlt;T, Sgt; = S extends Alt;T, infer Kgt; ? K : never; function fnlt;S, Tgt;(cb: (v: S) =gt; void, partial: T) {  return (rest: GetKlt;T, Sgt;) =gt; cb({ ...rest, ...partial }); }  

Я получаю следующую ошибку TS:

‘S’ может быть создан с произвольным типом, который может быть не связан с ‘GetKlt;T, Sgt; amp; T’

Как я могу сравниться GetKlt;T, Sgt; amp; T с S