IntervalLengths: [start_0: number, len_0: number | undefined, start_i_len_i: (number | undefined)[]]

represents interval starting points and lengths at which slices should be performed by sliceIntervalLengths.

  • every even element dictates a start index, which should be:
    • a positive number
  • every odd element dictates the subsequent len length of the interval, which can one of:
    • a positive number
    • or undefined, for slicing till end
// mathematically represents the set of intervals: { [0, 0 + 10), [20, 20 + 10), [90, Inf), [15, 15 + 70) } === { [0, 10), [20, 30), [90, 100), [15, 85) }
const my_intervals: IntervalLengths = [0, 10, 20, 10, 90, undefined, 15, 70]