Type alias FirstT<Value>

FirstT<Value>: Value extends string
    ? Value extends `${infer First}${infer Rest}`
        ? First
        : string | undefined
    : Value extends [infer First]
        ? First
        : Value extends [infer First, ...(infer Rest)]
            ? First
            : Value extends (infer First)[]
                ? First
                : undefined

Type Parameters

  • Value extends unknown[] | string