diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9c5cc49..e76b1cf 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,12 +1,7 @@
## Changelog
-### [v2.0.1](https://github.com/panates/jsopen-objects/compare/v2.0.0...v2.0.1) -
+### [v2.0.2](https://github.com/panates/jsopen-objects/compare/v2.0.1...v2.0.2) -
#### 🛠 Refactoring and Updates
-- refactor: Made default "symbolKeys" option to true @Eray Hanoğlu
-
-#### 💬 General Changes
-
-- dev: Coveralls parallel @Eray Hanoğlu
-- dev: Coveralls parallel @Eray Hanoğlu
+- refactor: Minor typing changes @Eray Hanoğlu
diff --git a/package-lock.json b/package-lock.json
index 3eb1b4a..847bbed 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "@jsopen/objects",
- "version": "2.0.1",
+ "version": "2.0.2",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@jsopen/objects",
- "version": "2.0.1",
+ "version": "2.0.2",
"license": "MIT",
"dependencies": {
"tslib": "^2.8.1"
diff --git a/package.json b/package.json
index 3a0cafc..ed13089 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "@jsopen/objects",
"description": "Helper utilities for working with JavaScript objects and arrays",
- "version": "2.0.1",
+ "version": "2.0.2",
"author": "Panates",
"license": "MIT",
"private": true,
diff --git a/src/merge.ts b/src/merge.ts
index 60f1d2e..b194b28 100644
--- a/src/merge.ts
+++ b/src/merge.ts
@@ -3,31 +3,34 @@ import { isBuiltIn } from './type-guards.js';
const hasOwnProperty = Object.prototype.hasOwnProperty;
-export function merge(
- target: A,
- source: B,
- options?: merge.Options,
-): A & B;
-export function merge(
+export function merge(
target: A,
source: [B, C],
options?: merge.Options,
): A & B & C;
-export function merge(
- target: A,
- source: [B, C, D],
- options?: merge.Options,
-): A & B & C & D;
-export function merge(
- target: A,
- source: [B, C, D, E],
- options?: merge.Options,
-): A & B & C & D & E;
+export function merge<
+ A extends object,
+ B extends object,
+ C extends object,
+ D extends object,
+>(target: A, source: [B, C, D], options?: merge.Options): A & B & C & D;
+export function merge<
+ A extends object,
+ B extends object,
+ C extends object,
+ D extends object,
+ E extends object,
+>(target: A, source: [B, C, D, E], options?: merge.Options): A & B & C & D & E;
export function merge(
target: A,
source: [B, C, D, F],
options?: merge.Options,
): A & B & C & D & F;
+export function merge(
+ target: A,
+ source: B,
+ options?: merge.Options,
+): A & B;
export function merge(
targetObject: any,
sourceObject: any,
diff --git a/src/omit.ts b/src/omit.ts
index 90ac61d..b3d7738 100644
--- a/src/omit.ts
+++ b/src/omit.ts
@@ -10,7 +10,10 @@ import {
} from 'ts-gems';
import { merge } from './merge.js';
-export function omit(obj: T, keys: K[]): Omit {
+export function omit(
+ obj: T,
+ keys: K[],
+): Omit {
const keysSet = new Set(keys);
return merge({}, obj, {
deep: false,
@@ -20,11 +23,23 @@ export function omit(obj: T, keys: K[]): Omit {
});
}
-export function omitUndefined(obj: T, deep: true): DeepOmitUndefined;
-export function omitUndefined(obj: T, deep: 'full'): DeeperOmitUndefined;
-export function omitUndefined(obj: T, deep: false): OmitUndefined;
-export function omitUndefined(obj: T): OmitUndefined;
-export function omitUndefined(obj: T, deep?: boolean | 'full') {
+export function omitUndefined(
+ obj: T,
+ deep: true,
+): DeepOmitUndefined;
+export function omitUndefined(
+ obj: T,
+ deep: 'full',
+): DeeperOmitUndefined;
+export function omitUndefined(
+ obj: T,
+ deep: false,
+): OmitUndefined;
+export function omitUndefined(obj: T): OmitUndefined;
+export function omitUndefined(
+ obj: T,
+ deep?: boolean | 'full',
+) {
return merge({}, obj, {
deep,
ignoreUndefined: true,
@@ -32,11 +47,20 @@ export function omitUndefined(obj: T, deep?: boolean | 'full') {
});
}
-export function omitNull(obj: T, deep: true): DeepOmitTypes;
-export function omitNull(obj: T, deep: 'full'): DeeperUnNullish;
-export function omitNull(obj: T, deep: false): OmitTypes;
-export function omitNull(obj: T): OmitTypes;
-export function omitNull(obj: T, deep?: boolean | 'full') {
+export function omitNull(
+ obj: T,
+ deep: true,
+): DeepOmitTypes;
+export function omitNull(
+ obj: T,
+ deep: 'full',
+): DeeperUnNullish;
+export function omitNull(
+ obj: T,
+ deep: false,
+): OmitTypes;
+export function omitNull(obj: T): OmitTypes;
+export function omitNull(obj: T, deep?: boolean | 'full') {
return merge({}, obj, {
deep,
ignoreNulls: true,
@@ -45,11 +69,20 @@ export function omitNull(obj: T, deep?: boolean | 'full') {
});
}
-export function omitNullish(obj: T, deep: true): DeepUnNullish;
-export function omitNullish(obj: T, deep: 'full'): DeeperUnNullish;
-export function omitNullish(obj: T, deep: false): UnNullish;
-export function omitNullish(obj: T): UnNullish;
-export function omitNullish(obj: T, deep?: boolean | 'full') {
+export function omitNullish(
+ obj: T,
+ deep: true,
+): DeepUnNullish;
+export function omitNullish(
+ obj: T,
+ deep: 'full',
+): DeeperUnNullish;
+export function omitNullish(
+ obj: T,
+ deep: false,
+): UnNullish;
+export function omitNullish(obj: T): UnNullish;
+export function omitNullish(obj: T, deep?: boolean | 'full') {
return merge({}, obj, {
deep,
ignoreNulls: true,