Да, эта черная магия работает. Но, к сожалению, я не могу использовать его для достижения типов, которые я хочу иметь, с такими универсальными типами компилятор просто сдается и ставит неявные anys везде, где интересно,
ерен, что это возможно, но я хотел бы иметь возможность определить тип, который преобразует кортежи, как:[number, string, undefined, number]
в[number, string, number]
(т.е. отфильтроватьundefined
).
Я думал о чем-то вроде этого:
type FilterUndefined<T extends any[]> = {
[i in keyof T]: T[i] extends undefined ? /* nothing? */ : T[i];
}
К сожалению, я почти уверен, что нет способа достичь этого.