• Type Parameters

    Parameters

    • Rest...members: [...(never extends T
          ? {
              [K in string | number | symbol]: AnyShape extends T[K<K>]
                  ? T[K<K>] & AnyShape
                  : (UnionKeys<Input<T[K<K>]>> & {
                          [L in string | number | symbol]: K<K> extends L<L>
                              ? never
                              : UnionKeys<Input<(...)>>
                      }[number]) extends O
                      ? [O] extends [never]
                          ? Shape<Input<T[K<(...)>]> & {}, Input<T[K<(...)>]> & {}>
                          : Shape<{
                              [_ in string | number | symbol]?: undefined
                          }, {
                              [_ in string | number | symbol]?: undefined
                          }>
                      : never
          }
          : T)[]]

    Returns Shape<InputObject<T>, OutputObject<T>>