This is named after Ramda's aperture function https://ramdajs.com/docs/#aperture.
const aperture = (n: number) =>
	<T>(xs: T[]): T[][] =>
		n < 1 || n > xs.length
			? []
			: Array.from({ length: xs.length - n + 1 }, (_, i) => xs.slice(i, i + n));Example:
const pairs = aperture(2)([0, 1, 2, 3, 4]);
console.log(pairs);
// [[0, 1], [1, 2], [2, 3], [3, 4]]