-
Notifications
You must be signed in to change notification settings - Fork 207
Commit
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
declare function omit<T extends object, K extends keyof T>(obj: T | null | undefined, remove: keyof T | Array<K | ReadonlyArray<K>>, ...rest: Array<K | ReadonlyArray<K>>): any; | ||
This comment has been minimized.
Sorry, something went wrong. |
||
export = omit; |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
/* | ||
This comment has been minimized.
Sorry, something went wrong.
jednano
Author
Contributor
|
||
var obj = {a: 3, b: 5, c: 9}; | ||
omit(obj, ['a', 'c']); // {b: 5} | ||
omit(obj, a, c); // {b: 5} | ||
omit(obj, ['a', 'b', 'd']); // {c: 9} | ||
omit(obj, ['a', 'a']); // {b: 5, c: 9} | ||
*/ | ||
|
||
function omit<T extends object, K extends keyof T>( | ||
obj: T | null | undefined, | ||
remove: keyof T | Array<K | ReadonlyArray<K>>, | ||
...rest: Array<K | ReadonlyArray<K>> | ||
) { | ||
var result = {} as any; | ||
if (typeof remove === 'string') { | ||
remove = [remove as any].concat(rest) | ||
} | ||
for (var prop in obj) { | ||
if (!obj.hasOwnProperty || obj.hasOwnProperty(prop)) { | ||
if ((remove as Array<K | ReadonlyArray<K>>).indexOf(prop as unknown as K) === -1) { | ||
result[prop as string] = obj[prop]; | ||
} | ||
} | ||
} | ||
return result; | ||
} | ||
|
||
export = omit; |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
// @ts-check | ||
This comment has been minimized.
Sorry, something went wrong.
jednano
Author
Contributor
|
||
var test = require('../util/test')(__filename); | ||
var omit = require('../../packages/object-omit'); | ||
var compare = require('../../packages/collection-compare'); | ||
|
@@ -35,6 +36,7 @@ test('omit using arguments', function(t) { | |
test('omit using a non-existent key', function(t) { | ||
t.plan(1); | ||
var obj = {a: 3, b: 5, c: 9}; | ||
// @ts-ignore | ||
This comment has been minimized.
Sorry, something went wrong.
jednano
Author
Contributor
|
||
t.ok(compare(omit(obj, ['a', 'b', 'd']), {c: 9})); | ||
t.end(); | ||
}); | ||
|
This file is generated and not meant to be human readable.