/** * * 执行一个函数,并在出错时对错误进行捕获处理 * * * safeCall(fn,args) // 出错时忽略并返回 undefined * safeCall(fn,args,{catch:'ignore'}) * safeCall(fn,args,{catch:'ignore',default:0}) * safeCall(fn,args,{catch:'throw'}) // 出错时原样抛出错误 * safeCall(fn,args,(error)=>{}) // 调用函数并返回值 * */ interface SafeCallOptions { catch?: 'ignore' | 'throw'; default?: any; error?: Error; } type SafeCallCatcher = (error: Error) => any; declare function safeCall(fn: Function, args?: any[]): any; declare function safeCall(fn: Function, options?: SafeCallOptions | SafeCallCatcher): any; export { type SafeCallCatcher, type SafeCallOptions, safeCall };