'use strict'; type NoUndef = T extends undefined ? never : T; export type Repeat< T, N extends number, R extends T[] = [], > = R['length'] extends N ? R : Repeat; export type AddArrayPropertyType = T | T[]; export type AddArrayPropertyTypes = { [P in keyof T]: T[P] extends undefined ? undefined : T[P] | NoUndef[]; };