type Mxs = Mx<'list', Mxs['p1']>; interface Mx { p1: T; p2: K; } type ArrElem = ['list', ArrElem[number][0]][]; type TupleElem = [['list', TupleElem[0][0]]];