Endo
    Preparing search index...

    Function defineExoClassKit

    • Define an exo class kit whose facet methods are type-checked against the InterfaceGuardKit.

      When the guard kit carries typed InterfaceGuards, each facet's methods are constrained to match the corresponding guard's inferred signatures.

      Type Parameters

      Parameters

      Returns (...args: Parameters<I>) => GuardedKit<F, GK>

    • Define an exo class kit whose facet methods are type-checked against the InterfaceGuardKit.

      When the guard kit carries typed InterfaceGuards, each facet's methods are constrained to match the corresponding guard's inferred signatures.

      Type Parameters

      • I extends (...args: readonly any[]) => any
      • F extends Record<string, Methods>

      Parameters

      • tag: string
      • interfaceGuardKit: Record<string, InterfaceGuard> | undefined
      • init: I
      • methodsKit: {
            [K in string | number | symbol]: F[K] & ThisType<
                { facets: GuardedKit<F>; state: ReturnType<I> },
            >
        }
      • Optionaloptions: FarClassOptions<
            KitContext<
                ReturnType<I>,
                GuardedKit<
                    F,
                    {
                        [K in string
                        | number
                        | symbol]: InterfaceGuard<
                            { [M in string
                            | number
                            | symbol]: MethodGuard },
                        >
                    },
                >,
            >,
            GuardedKit<
                F,
                {
                    [K in string
                    | number
                    | symbol]: InterfaceGuard<
                        { [M in string
                        | number
                        | symbol]: MethodGuard },
                    >
                },
            >,
        >

      Returns (...args: Parameters<I>) => GuardedKit<F>