Добавлять eslint в существующий проект, если он с историей и над ним работает команда из нескольких человек - это может быть весьма больно.
type ExtractGenerics<T extends readonly unknown[]> = T extends readonly []
? []
: T extends readonly [G<infer V>, ...infer Next]
? [V, ...ExtractGenerics<Next>]
: T extends readonly (G<infer V>)[]
? V[]
: never;
type Input2 = G<number>[]
const values3 = unwrap([ // = number[]
{ value: 1 },
] as Input2)
VSCode это и не IDE по-хорошему-то.
type TTT<T> = T extends infer U ? [U] : -1
type ttt11 = TTT<'a' | 'b'> // type ttt11 = ["a"] | ["b"]
type ttt12 = 'a' | 'b' extends infer U ? [U] : -1 // type ttt12 = ["a" | "b"]