Skip to content
Effect 4.0 is here. One ecosystem. Zero dependencies.

Unify

8 exports Since v2.0.0 Source

Other

Signature

declare const ignoreSymbol: unique symbol
Since v2.0.0

Signature

type ignoreSymbol = typeof ignoreSymbol

Signature

declare const typeSymbol: unique symbol
Since v2.0.0

Signature

type typeSymbol = typeof typeSymbol
Since v2.0.0

Signature

declare const unify: {
<Args extends Array<any>, Args2 extends Array<any>, Args3 extends Array<any>, Args4 extends Array<any>, Args5 extends Array<any>, T>(x: (...args: Args) => (...args: Args2) => (...args: Args3) => (...args: Args4) => (...args: Args5) => T): (...args: Args) => (...args: Args2) => (...args: Args3) => (...args: Args4) => (...args: Args5) => Unify<T>;
<Args extends Array<any>, Args2 extends Array<any>, Args3 extends Array<any>, Args4 extends Array<any>, T>(x: (...args: Args) => (...args: Args2) => (...args: Args3) => (...args: Args4) => T): (...args: Args) => (...args: Args2) => (...args: Args3) => (...args: Args4) => Unify<T>;
<Args extends Array<any>, Args2 extends Array<any>, Args3 extends Array<any>, T>(x: (...args: Args) => (...args: Args2) => (...args: Args3) => T): (...args: Args) => (...args: Args2) => (...args: Args3) => Unify<T>;
<Args extends Array<any>, Args2 extends Array<any>, T>(x: (...args: Args) => (...args: Args2) => T): (...args: Args) => (...args: Args2) => Unify<T>;
<Args extends Array<any>, T>(x: (...args: Args) => T): (...args: Args) => Unify<T>;
<T>(x: T): Unify<T>;
}

Unify

type
Since v2.0.0

Signature

type Unify<A> = Values<ExtractTypes<FilterIn<A> & {
[typeSymbol]: A;
}>> extends infer Z ? Z | Exclude<A, Z> | FilterOut<A> : never

Signature

declare const unifySymbol: unique symbol
Since v2.0.0

Signature

type unifySymbol = typeof unifySymbol