/* * @Author: 赵伟 * @Date: 2024-10-12 14:27:29 * @Description: 函数式编程 */ /** * 安全调用函数,如果参数是 `undefined` 或 `null`,直接返回 `undefined` 或 `null`,而不会导致异常 * * @param fn - 要调用的函数 * @returns 封装后的函数,该函数的参数如果是 `undefined` 或 `null`,结果直接返回 `undefined` 或 `null`,而不会导致异常 */ export function safeInvoke( fn: (value: T) => M | undefined | null, ): (value: T | undefined | null) => M | undefined | null { return (arg: T | undefined | null) => { if (arg === undefined || arg === null) { return arg as undefined | null; } return fn(arg); }; }