# keepDefined

`function` in `utils` · v0.8.11

<https://docs.seedcord.org/packages/utils/0.8.11/functions/keep-defined>

Copies only the keys holding a value, dropping both `undefined` and `null`.

```ts
keepDefined<TObject, TKey>(
    source: TObject,
    keys: readonly TKey[]
): Partial<
    Pick<
        TObject,
        TKey extends never ? keyof TObject : TKey
    >
>
```

Copies only the keys holding a value, dropping both `undefined` and `null`.

Parameters.

- `source` `TObject` — the object to read values from
- `keys` `readonly TKey[]` — optional list of keys to include when present.

Returns `Partial<Pick<TObject, TKey extends never ? keyof TObject : TKey>>`.
