Hyperlinkv0.8.0-beta.28

Struct

Struct.omitconsteffect/Struct.ts:234
<S extends object, const Keys extends ReadonlyArray<keyof S>>(
  keys: Keys
): (self: S) => Simplify<Omit<S, Keys[number]>>
<S extends object, const Keys extends ReadonlyArray<keyof S>>(
  self: S,
  keys: Keys
): Simplify<Omit<S, Keys[number]>>

Creates a new struct with the specified keys removed.

When to use

Use to exclude sensitive or irrelevant fields from a struct.

Gotchas

Keys not present in the struct are silently ignored.

Example (Removing a property)

import { pipe, Struct } from "effect"

const user = { name: "Alice", age: 30, password: "secret" }
const safe = pipe(user, Struct.omit(["password"]))
console.log(safe) // { name: "Alice", age: 30 }
filteringpick
Source effect/Struct.ts:23411 lines
export const omit: {
  <S extends object, const Keys extends ReadonlyArray<keyof S>>(
    keys: Keys
  ): (self: S) => Simplify<Omit<S, Keys[number]>>
  <S extends object, const Keys extends ReadonlyArray<keyof S>>(self: S, keys: Keys): Simplify<Omit<S, Keys[number]>>
} = dual(
  2,
  <S extends object, Keys extends ReadonlyArray<keyof S>>(self: S, keys: Keys) => {
    return buildStruct(self, (k, v) => (!keys.includes(k) ? [k, v] : undefined))
  }
)