Type alias SequenceMapper<A, U, D>

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

self explanatory analogue to RecordMapper, except for Arrays

Type Parameters

  • A extends readonly unknown[]
  • U extends {
        [K in keyof A]?: any
    } = {
        [K in keyof A]: unknown
    }
  • D extends any = unknown

Example

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,
]
// assert typeof vax extends [(value: 1) => number, (value: 2) => number, (value: "halla") => string, (value: 4) => number, (value: 5) => number]

Generated using TypeDoc