Function validateEqualsParameters

  • Validates parameters with strict equality.

    Validates a function, by wrapping the function and checking its parameters through validateEquals function. If some parameter does not match the expected type, it returns IValidation.IError typed object. Otherwise there's no type error, it returns IValidation.ISuccess typed object instead.

    For reference, IValidation.IError.path would be a little bit different with individual validateEquals function. If the IValidation.IError occurs from some parameter, the path would start from $input.parameters[number].

    By the way, if what you want is not finding every type errors, but just finding the 1st type error, then use assertEqualsParameters instead. Otherwise, what you want is not only validating parameters, but also validating return value, you can use validateEqualsFunction instead.

    On the other hand, if you want to allow any superfluous properties, utilize validateParameters or assertParameters instead.

    Type Parameters

    • T extends ((...args: any[]) => any)

      Target function type

    Parameters

    • func: T

      Target function to validate

    Returns T extends ((...args: infer Arguments) => infer Output)
        ? Output extends Promise<infer R>
            ? ((...args: Arguments) => Promise<IValidation<R>>)
            : ((...args: Arguments) => IValidation<Output>)
        : never

    The wrapper function with type validations

    Jeongho Nam - https://github.com/samchon