2665. Counter II (?) (https://leetcode.com/problems/counter-ii)

Напишите функцию createCounter. Она должна принимать начальное целое число init. Она должна возвращать объект с тремя функциями. Эти три функции: - increment() увеличивает текущее значение на 1 и возвращает его.

  • decrement() уменьшает текущее значение на 1 и возвращает его.
  • reset() устанавливает текущее значение равным init и возвращает его.
interface Counter {
  increment: () => number
  decrement: () => number
  reset: () => number
}
 
function createCounter(init: number): Counter {
  let value = init
 
  return {
    increment: () => ++value,
    decrement: () => --value,
    reset: () => (value = init),
  }
}
Example 1:
 
    Input: init = 5, calls = ["increment","reset","decrement"]
    Output: [6,5,4]
    Explanation:
    const counter = createCounter(5);
    counter.increment(); // 6
    counter.reset(); // 5
    counter.decrement(); // 4
 
Example 2:
 
    Input: init = 0, calls = ["increment","increment","decrement","reset","reset"]
    Output: [1,2,1,0,0]
    Explanation:
    const counter = createCounter(0);
    counter.increment(); // 1
    counter.increment(); // 2
    counter.decrement(); // 1
    counter.reset(); // 0
    counter.reset(); // 0

leetcode