跳到主要内容

2666.只允许一次函数调用

链接:2666.只允许一次函数调用
难度:Easy
标签:
简介:给定一个函数 fn ,它返回一个新的函数,返回的函数与原始函数完全相同,只不过它确保 fn 最多被调用一次。

题解 1 - typescript

  • 编辑时间:2023-05-10
  • 执行用时:56ms
  • 内存消耗:42.5MB
  • 编程语言:typescript
  • 解法介绍:闭包。
function once<T extends (...args: any[]) => any>(
fn: T
): (...args: Parameters<T>) => ReturnType<T> | undefined {
let used = false;
return (...args) => (used ? undefined : ((used = true), fn(...args)));
}