PHP WebShell

Текущая директория: /usr/lib/node_modules/bitgo/node_modules/@celo/contractkit/node_modules/fp-ts/es6

Просмотр файла: Semigroup.d.ts

/**
 * @file See [Getting started with fp-ts: Semigroup](https://dev.to/gcanti/getting-started-with-fp-ts-semigroup-2mf7)
 */
import { Ord } from './Ord';
import { Magma } from './Magma';
/**
 * A `Semigroup` is a `Magma` where `concat` is associative, that is:
 *
 * Associativiy: `concat(concat(x, y), z) = concat(x, concat(y, z))`
 *
 * @since 2.0.0
 */
export interface Semigroup<A> extends Magma<A> {
}
/**
 * @since 2.0.0
 */
export declare function fold<A>(S: Semigroup<A>): (a: A, as: Array<A>) => A;
/**
 * @since 2.0.0
 */
export declare function getFirstSemigroup<A = never>(): Semigroup<A>;
/**
 * @since 2.0.0
 */
export declare function getLastSemigroup<A = never>(): Semigroup<A>;
/**
 * Given a tuple of semigroups returns a semigroup for the tuple
 *
 * @example
 * import { getTupleSemigroup, semigroupString, semigroupSum, semigroupAll } from 'fp-ts/lib/Semigroup'
 *
 * const S1 = getTupleSemigroup(semigroupString, semigroupSum)
 * assert.deepStrictEqual(S1.concat(['a', 1], ['b', 2]), ['ab', 3])
 *
 * const S2 = getTupleSemigroup(semigroupString, semigroupSum, semigroupAll)
 * assert.deepStrictEqual(S2.concat(['a', 1, true], ['b', 2, false]), ['ab', 3, false])
 *
 * @since 2.0.0
 */
export declare function getTupleSemigroup<T extends Array<Semigroup<any>>>(...semigroups: T): Semigroup<{
    [K in keyof T]: T[K] extends Semigroup<infer A> ? A : never;
}>;
/**
 * @since 2.0.0
 */
export declare function getDualSemigroup<A>(S: Semigroup<A>): Semigroup<A>;
/**
 * @since 2.0.0
 */
export declare function getFunctionSemigroup<S>(S: Semigroup<S>): <A = never>() => Semigroup<(a: A) => S>;
/**
 * @since 2.0.0
 */
export declare function getStructSemigroup<O extends {
    [key: string]: any;
}>(semigroups: {
    [K in keyof O]: Semigroup<O[K]>;
}): Semigroup<O>;
/**
 * @since 2.0.0
 */
export declare function getMeetSemigroup<A>(O: Ord<A>): Semigroup<A>;
/**
 * @since 2.0.0
 */
export declare function getJoinSemigroup<A>(O: Ord<A>): Semigroup<A>;
/**
 * Returns a `Semigroup` instance for objects preserving their type
 *
 * @example
 * import { getObjectSemigroup } from 'fp-ts/lib/Semigroup'
 *
 * interface Person {
 *   name: string
 *   age: number
 * }
 *
 * const S = getObjectSemigroup<Person>()
 * assert.deepStrictEqual(S.concat({ name: 'name', age: 23 }, { name: 'name', age: 24 }), { name: 'name', age: 24 })
 *
 * @since 2.0.0
 */
export declare function getObjectSemigroup<A extends object = never>(): Semigroup<A>;
/**
 * Boolean semigroup under conjunction
 * @since 2.0.0
 */
export declare const semigroupAll: Semigroup<boolean>;
/**
 * Boolean semigroup under disjunction
 * @since 2.0.0
 */
export declare const semigroupAny: Semigroup<boolean>;
/**
 * Number `Semigroup` under addition
 * @since 2.0.0
 */
export declare const semigroupSum: Semigroup<number>;
/**
 * Number `Semigroup` under multiplication
 * @since 2.0.0
 */
export declare const semigroupProduct: Semigroup<number>;
/**
 * @since 2.0.0
 */
export declare const semigroupString: Semigroup<string>;
/**
 * @since 2.0.0
 */
export declare const semigroupVoid: Semigroup<void>;

Выполнить команду


Для локальной разработки. Не используйте в интернете!