UNPKG

ut2

Version:

一个现代 JavaScript 实用工具库。[点击查看在线文档]。

23 lines (22 loc) 896 B
import { SingleAsyncFn, SingleSyncFn } from './internals/types'; interface Guard { <R>(fn: SingleAsyncFn<R>, shouldGuard?: () => boolean): Promise<R | undefined>; <R>(fn: SingleSyncFn<R>, shouldGuard?: () => boolean): R | undefined; } /** * 函数守卫。 * * @alias module:Util.guard * @since 1.14.0 * @param {Function} fn 要执行的函数。 * @param {Function} [shouldGuard] 函数守卫断言。如果返回 `Truthy` 表示需要守卫,否则不需要守卫。 * @returns 如果函数执行成功,正常返回结果;如果异步函数拒绝或抛出错误时,有函数守卫返回 `undefined`,否则抛出错误。 * @example * guard(() => 42); // 42 * await guard(() => Primise.resolve(42)); // 42 * * guard(() => { throw new Error() }); // undefined * await guard(() => Promise.reject()); // undefined */ declare const guard: Guard; export default guard;