Endo
    Preparing search index...

    Function defineExoClass

    • Define an exo class whose methods are type-checked against the InterfaceGuard.

      Type Parameters

      • G extends InterfaceGuard
      • I extends (...args: readonly any[]) => any
      • M extends {
            [key: string]:
                | (
                    (
                        ...args:
                            | any[]
                            | [unknown?, ...any[]]
                            | [unknown, ...any[]]
                            | [unknown, unknown?, ...any[]],
                    ) => Promise<any>
                )
                | (
                    (
                        ...args:
                            | any[]
                            | [unknown?, ...any[]]
                            | [unknown, ...any[]]
                            | [unknown, unknown?, ...any[]],
                    ) => any
                )
                | ((...args: any[] | [unknown, ...any[]]) => Promise<any>)
                | ((...args: any[] | [unknown, ...any[]]) => any);
            [key: number]:
                | (
                    (
                        ...args:
                            | any[]
                            | [unknown?, ...any[]]
                            | [unknown, ...any[]]
                            | [unknown, unknown?, ...any[]],
                    ) => Promise<any>
                )
                | (
                    (
                        ...args:
                            | any[]
                            | [unknown?, ...any[]]
                            | [unknown, ...any[]]
                            | [unknown, unknown?, ...any[]],
                    ) => any
                )
                | ((...args: any[] | [unknown, ...any[]]) => Promise<any>)
                | ((...args: any[] | [unknown, ...any[]]) => any);
            [key: symbol]:
                | (
                    (
                        ...args:
                            | any[]
                            | [unknown?, ...any[]]
                            | [unknown, ...any[]]
                            | [unknown, unknown?, ...any[]],
                    ) => Promise<any>
                )
                | (
                    (
                        ...args:
                            | any[]
                            | [unknown?, ...any[]]
                            | [unknown, ...any[]]
                            | [unknown, unknown?, ...any[]],
                    ) => any
                )
                | ((...args: any[] | [unknown, ...any[]]) => Promise<any>)
                | ((...args: any[] | [unknown, ...any[]]) => any);
        }

      Parameters

      Returns (...args: Parameters<I>) => Guarded<M, G>

    • Define an exo class whose methods are type-checked against the InterfaceGuard.

      Type Parameters

      • I extends (...args: readonly any[]) => any
      • M extends Methods

      Parameters

      Returns (...args: Parameters<I>) => Guarded<M>