Skip to content

evolve() function

변환 함수에 따라 객체의 얕은 복사본을 재귀적으로 진화시켜 새 객체를 생성합니다.

Signature:

typescript
declare function evolve<
  O extends Record<string, any>,
  T extends Transformation<O>,
>(transformation: T): (obj: O) => EvolveReturnType<O, T>;

Example

ts
const add1String = (a: number) => String(a + 1);
const obj = { a: 1, b: 2, c: { d: 3, e: 4 }, f: true };
const transformation = {
  a: add1String,
  b: add1String,
  c: (obj: { d: number; e: number }) =>
    evolve({ d: add1String, e: add1String }, obj),
};
evolve(transformation, obj);
// { a: "2", b: "3", c: { d: "4", e: "5" }, f: true }

Open Source Code

Released under the Apache-2.0 License.