The type of the input record
The key path tuple
A new record with the nested property at the path removed
const data = { a: { b: { c: 1, d: 2 }, e: 3 }, f: 4 } as const;
// Direct usage
const result = Obj.deepOmit(data, ['a', 'b', 'c']);
assert.deepStrictEqual(result, { a: { b: { d: 2 }, e: 3 }, f: 4 });
// Curried usage with pipe
const omitAB = Obj.deepOmit(['a', 'b']);
const result2 = pipe(data).map(omitAB).value;
assert.deepStrictEqual(result2, { a: { e: 3 }, f: 4 });
Deeply omits a nested property from an object along the specified key path. Supports both direct and curried usage.
The key path tuple
A readonly tuple of keys representing the nested path to omit
A new record with the nested property at the path removed
const data = { a: { b: { c: 1, d: 2 }, e: 3 }, f: 4 } as const;
// Direct usage
const result = Obj.deepOmit(data, ['a', 'b', 'c']);
assert.deepStrictEqual(result, { a: { b: { d: 2 }, e: 3 }, f: 4 });
// Curried usage with pipe
const omitAB = Obj.deepOmit(['a', 'b']);
const result2 = pipe(data).map(omitAB).value;
assert.deepStrictEqual(result2, { a: { e: 3 }, f: 4 });
Deeply omits a nested property from an object along the specified key path. Supports both direct and curried usage.