Type Alias SequenceMapper<A, U, D>

SequenceMapper: {
    [K in keyof A]: (value: A[K]) => unknown extends U[K] ? D : U[K]
}

self explanatory analogue to RecordMapper, except designed for Arrays.

Type Parameters

  • A extends readonly unknown[]
  • U extends { [K in keyof A]?: any } = { [K in keyof A]: unknown }
  • D extends any = unknown
const vec5 = [1, 2, "halla", 4, 5] as const

const vecc: SequenceMapper<typeof vec5, [unknown, unknown, string, unknown, unknown], number> = [
(v) => v + 4,
(v) => v + 3,
(s) => s === "halla" ? "hello" : "un-greetful",
(v) => v + 1,
(v) => v + 0,
]

vecc satisfies (readonly [
(value: 1) => number,
(value: 2) => number,
(value: "halla") => string,
(value: 4) => number,
(value: 5) => number,
])