@voxpelli/typed-utils
v1.10.2
Published
My personal (type-enabled) utils / helpers
Downloads
10,624
Readme
@voxpelli/typed-utils
My personal (type-enabled) utils / helpers
Usage
Simple
import { filter } from '@voxpelli/typed-utils';
/** @type {string[]} */
const noUndefined = filter(['foo', undefined]);
Helpers
Array
filter(inputArray, [valueToRemove]) => filteredArray
Takes an array as inputArray
and a valueToRemove
that is a string literal, false
, null
or undefined
, defaulting to undefined
if left out.
Creates a new array with all values from inputArray
except the one that matches valueToRemove
, then returns that array with a type where thevalueToRemove
type has also been removed from the possible values.
Can be useful in combination with eg. a .map()
where some items in the array has resulted in undefined
/ null
/ false
values that one wants to have removed before processing the result further.
filterWithCallback(value, callback)
Similar to Array.prototype.filter()
but expects the callback
to be a function like (value: unknown) => value is any
where the is
is the magic sauce.
isArrayOfType(value, callback)
Similar to Array.isArray()
but also checks that the array only contains values of type verified by the callback
function and sets the type to be an array of that type rather than simply any[]
. The callback
should be a function like (value: unknown) => value is any
and needs to have an is
in the return type for the types to work.
isStringArray(value)
Similar to Array.isArray()
but also checks that the array only contains values of type string
and sets the type to string[]
rather than any[]
.
typesafeIsArray(value)
Alias: ~~isUnknownArray(value)
~~ (deprecated)
Does the exact same thing as Array.isArray()
but derives the type unknown[]
rather than any[]
, which improves strictness.
Miscellaneous
explainVariable(value)
Returns a typeof
style explanation of a variable, with added support for eg. null
and array
looksLikeAnErrnoException(err)
Returns true
if the err
looks like being of the NodeJS.ErrnoException
type
Object
omit(obj, keys)
The TypeScript utility type Omit<obj, keys>
with code that does the actual omit.
pick(obj, keys)
The TypeScript utility type Pick<obj, keys>
with code that does the actual pick.
typedObjectKeys(obj)
Like Object.keys()
but typed with Array<keyof obj>
rather than string[]
. When obj
is a union this means the type will resolve to only the keys shared between all objects in the union.
typedObjectKeysAll(obj)
Like typedObjectKeys(obj)
but when obj
is a union this type will resolve to all possible keys within that union, not just the shared ones.
Object Path
getObjectValueByPath(obj, path, createIfMissing)
getStringValueByPath(obj, path)
getValueByPath(obj, path)
Similar modules
type-helpers
– my personal type helpers, contains no code, just types