export type TupleOf = Result['length'] extends Length ? Result : TupleOf; export type TupleFirst = Tuple extends Readonly<[ infer Head, ...(readonly unknown[]) ]> ? Head : never; export type TupleExcludingFirst = Tuple extends Readonly<[ unknown, ...infer Tail ]> ? Tail : never; export type TupleLast = Tuple extends Readonly<[ ...infer _, infer Last ]> ? Last : never; export type TupleExcludingLast = Tuple extends Readonly<[ ...infer Rest, unknown ]> ? Rest : never;