• Type Parameters

    Parameters

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

    Returns Variant<T, InputObject<E>, OutputObject<E>>