/** * An array with *exactly* N elements in it. * * Only literal N values are supported. For very large N the type might result * in a recurse depth error. For negative N the type would result in an infinite * recursion. None of these have protections because this is an internal type! */ type NTuple = []> = Result["length"] extends N ? Result : NTuple; export type { NTuple as N };