Gathering detailed insights and metrics for ts-essentials
Gathering detailed insights and metrics for ts-essentials
Gathering detailed insights and metrics for ts-essentials
Gathering detailed insights and metrics for ts-essentials
azure-functions-ts-essentials
Essential interfaces and tools for backend development on Azure Functions with TypeScript
@storybook/addon-essentials
Curated addons to bring out the best of Storybook
essentials
Essential initialization for every JavaScript process
@storybook/addon-actions
Get UI feedback when an action is performed on an interactive element
All essential TypeScript types in one place 🤙
npm install ts-essentials
93.8
Supply Chain
100
Quality
87.6
Maintenance
100
Vulnerability
99.6
License
Module System
Min. Node Version
Typescript Support
Node Version
NPM Version
3,784 Stars
507 Commits
121 Forks
13 Watching
8 Branches
41 Contributors
Updated on 27 Nov 2024
Minified
Minified + Gzipped
TypeScript (98.87%)
JavaScript (1.13%)
Cumulative downloads
Total Downloads
Last day
-7.6%
403,394
Compared to previous day
Last week
3.9%
2,355,873
Compared to previous week
Last month
14.7%
9,561,027
Compared to previous month
Last year
-1.9%
97,493,767
Compared to previous year
1
All essential TypeScript types in one place 🤙
1npm install --save-dev ts-essentials
👉 We require typescript>=4.5
. If you're looking for support for older TS versions, please have a look at the
TypeScript dependency table
👉 As we really want types to be stricter, we require enabled strictNullChecks in your project
ts-essentials
is a set of high-quality, useful TypeScript types that make writing type-safe code easier.
Builtin
- Matches primitive, function, date, error or regular expressionKeyofBase
-
keyofStringsOnly
-tolerant analogue for PropertyKey
Prettify<Type>
- flattens type and makes it more readable on the hover in your IDEPrimitive
- Matches any
primitive valueStrictExclude<UnionType, ExcludedMembers>
- Constructs a type by excluding from UnionType
all union members that are assignable to ExcludedMembers
. This is stricter version of
Exclude
StrictExtract<Type, Union>
- Constructs a type by extracting from Type
all union members
that are assignable to Union
. This is stricter version of
Extract
StrictOmit<Type, Keys>
- Constructs a type by picking all properties from Type
and then
removing Keys
. This is stricter version of
Omit
Writable<Type>
- Constructs a type with removed readonly
for all properties of Type
, meaning
the properties of the constructed type can be reassignedAsyncOrSync<Type>
- Constructs a type with Type
or PromiseLike<Type>
AsyncOrSyncType<Type>
- Unwraps AsyncOrSync
typeDictionary<Type, Keys?>
- Constructs a required object type which property keys are Keys
(string
by default) and which property values are Type
Merge<Object1, Object2>
- Constructs a type by picking all properties from Object1
and Object2
.
Property values from Object2
override property values from Object1
when property keys are the sameMergeN<Tuple>
- Constructs a type by merging objects with type Merge
in tuple Tuple
recursivelyNewable<ReturnType>
- Constructs a class type with constructor which has return type ReturnType
NonNever<Type>
- Constructs a type by picking all properties from type Type
which values don't
equal to never
OmitProperties<Type, Value>
- Constructs a type by picking all properties from type Type
and removing those properties which values equal to Value
Opaque<Type, Token>
- Constructs a type which is a subset of Type
with a specified unique token
Token
PathValue<Type, Path>
- Constructs a path value for type Type
and path Path
Paths<Type>
- Constructs a union type by picking all possible paths for type Type
PickProperties<Type, Value>
- Constructs a type by picking all properties from type Type
which values equal to Value
SafeDictionary<Type, Keys?>
- Constructs an optional object type which property keys are
Keys
(string
by default) and which property values are Type
UnionToIntersection<Union>
- Constructs a intersection type from union type Union
ValueOf<Type>
- Constructs a type for type Type
and equals to a primitive for primitives, array
elements for arrays, function return type for functions or object property values for objectsXOR<Type1, Type2, Type3?, ..., Type50?>
- Construct a type which is assignable to either type Type1
,
Type2
but not both. Starting in ts-essentials@10, it supports up to 50 generic types.MarkOptional<Type, Keys>
- Constructs a type by picking all properties from type Type
where
properties Keys
are set as optional, meaning they aren't requiredMarkReadonly<Type, Keys>
- Constructs a type by picking all properties from type Type
where
properties Keys
are set to readonly
, meaning they cannot be reassignedMarkRequired<Type, Keys>
- Constructs a type by picking all properties from type Type
where
properties Keys
are set as requiredMarkWritable<Type, Keys>
- Constructs a type by picking all properties from type Type
where
properties Keys
remove readonly
modifier, meaning they can be reassignedBuildable<Type>
- Constructs a type by combining DeepPartial
and DeepWritable
, meaning all
properties from type Type
are recursively set as non-readonly
and optional, meaning they can be reassigned and
aren't requiredDeepNonNullable<Type>
- Constructs a type by picking all properties from type Type
recursively and exclude null
and undefined
property values from all of them. To make properties non-nullable on
one level, use NonNullable<Type>
DeepNullable<Type>
- Constructs a type by picking all properties from type Type
recursively
and include null
property values for all of themDeepOmit<Type, Filter>
- Constructs a type by picking all properties from type Type
and removing
properties which values are never
or true
in type Filter
. If you'd like type Filter
to be validated against a
structure of Type
, please use StrictDeepOmit<Type, Filter>
.DeepPartial<Type>
- Constructs a type by picking all properties from type Type
recursively
and setting them as optional, meaning they aren't required. To make properties optional on one level, use
Partial<Type>
DeepPick<Type, Filter>
- Constructs a type by picking set of properties, which have property
values never
or true
in type Filter
, from type Type
. If you'd like type Filter
to be validated against a
structure of Type
, please use StrictDeepPick<Type, Filter>
.DeepReadonly<Type>
- Constructs a type by picking all properties from type Type
recursively
and setting readonly
modifier, meaning they cannot be reassigned. To make properties readonly
on one level, use
Readonly<Type>
DeepRequired<Type>
- Constructs a type by picking all properties from type Type
recursively
and setting as required. To make properties required on one level, use
Required<Type>
DeepUndefinable<Type>
- Constructs a type by picking all properties from type Type
recursively and include undefined
property values for all of themDeepWritable<Type>
- Constructs a type by picking all properties from type Type
recursively
and removing readonly
modifier, meaning they can be reassigned. To make properties writable on one level, use
Writable<Type>
StrictDeepOmit<Type, Filter>
- Constructs a type by picking all properties from type Type
and removing properties which values are never
or true
in type Filter
. The type Filter
is validated against a
structure of Type
.StrictDeepPick<Type, Filter>
- Constructs a type by picking set of properties, which have
property values never
or true
in type Filter
, from type Type
. The type Filter
is validated against a
structure of Type
.OptionalKeys<Type>
- Constructs a union type by picking all optional properties of object type
Type
PickKeys<Type, Value>
- Constructs a union type by picking all properties of object type Type
which values are assignable to type Value
ReadonlyKeys<Type>
- Constructs a union type by picking all readonly
properties of object
type Type
, meaning their values cannot be reassignedRequiredKeys<Type>
- Constructs a union type by picking all required properties of object type
Type
WritableKeys<Type>
- Constructs a union type by picking all writable properties of object type
Type
, meaning their values can be reassignedExact<Type, Shape>
- Returns Type
when type Type
and Shape
are identical. Otherwise returns
never
IsAny<Type>
- Returns true
when type Type
is any
. Otherwise returns false
IsNever<Type>
- Returns true
when type Type
is never
. Otherwise returns false
IsUnknown<Type>
- Returns true
when type Type
is unknown
. Otherwise returns false
IsTuple<Type>
- Returns Type
when type Type
is tuple. Otherwise returns never
NonEmptyObject<Object>
- Returns Object
when Object
has at least one key. Otherwise
returns never
AnyArray<Type?>
- Matches Array
or ReadonlyArray
(Type
is any
by default)ArrayOrSingle<Type>
- Matches Type
or Type[]
ElementOf<Type>
- Constructs a type which equals to array element type for type Type
Head<Type>
- Constructs a type which equals to first element in type Type
NonEmptyArray<Type>
- Matches array with at least one element of type Type
ReadonlyArrayOrSingle
- Matches Type
or readonly Type[]
Tail<Type>
- Constructs a type which equals to elements but first one in type Type
Tuple<Type?>
- Matches type constraint for tuple with elements of type Type
(any
by default)CamelCase<Type>
- Converts type Type
to camel case (e.g. camelCase
)DeepCamelCaseProperties<Type>
- Constructs a type by picking all properties from
type Type
recursively and converting all of them to camel caseAnyFunction<Args?, ReturnType?>
- Matches function type with arguments type Args
(any[]
by
default) and return type ReturnType
(any
by default)PredicateFunction
- Matches type constraint for type guard, meaning first argument is
used in return type and return type is
type predicatePredicateType<Type>
- Constructs a type which equals to narrowed type in predicate function
Type
⚠️ Make sure you add ts-essentials
to your dependencies
(npm install --save ts-essentials
) to avoid runtime errors
new UnreachableCaseError(value)
- Matches runtime class instance type that
helps check exhaustiveness for value
. When value
isn't never
, it shows TypeScript errorassert(condition, message?)
- Matches runtime function that helps assert condition
. When
condition
is falsy, it throws an error with Assertion Error: ${message}
(message is
"no additional info provided"
by default)createFactoryWithConstraint<Constraint>()(value)
- Matches runtime
function, which validates that type of value
matches Constraint
without changing resulting type of value
.
Ponyfill for
satisfies
operatorisExact<Expected>()(actual)
- Matches runtime function, which validates that type of
actual
equals to Expected
. Otherwise shows TypeScript errornoop(..._args)
- Matches runtime function that does nothing with arguments _args
When one of utility types is known by a different name, kindly ask adding it here for the better search.
ArrayValues
- ValueOf<Type>
Branded
- Opaque<Type, Token>
ConditionalKeys
- PickKeys<Type, Value>
Except
- StrictOmit<Type, Keys>
Get
- PathValue<Type, Path>
Mutable
- Writable<Type>
Nominal
- Opaque<Type, Token>
Set*
, e.g. SetOptional
- Mark*
, e.g. MarkReadonly<Type, Keys>
Unwrap
- Prettify<Type>
ValueOf
- DictionaryValues
TypeScript provides several utility types to facilitate common type transformations. These utilities are available globally.
Awaited<Type>
- This type is meant to
model operations like await
in async
functions, or the .then()
method on Promise
s - specifically, the way that
they recursively unwrap Promise
sCapitalize<StringType>
-
Converts the first character in the string to an uppercase equivalentConstructParameters<Type>
-
Constructs a tuple or array type from the types of a constructor function type Type
Exclude<UnionType, ExcludedMembers>
-
Constructs a type by excluding from UnionType
all union members that are assignable to ExcludedMembers
Extract<Type, Union>
-
Constructs a type by extracting from Type
all union members that are assignable to Union
InstanceType<Type>
- Constructs
a type consisting of the instance type of a constructor function in Type
Lowercase<StringType>
-
Converts each character in the string to the lowercase equivalentNonNullable<Type>
- Constructs a
type by excluding null and undefined from Type
Omit<Type, Keys>
- Constructs a
type by picking all properties from Type
and then removing Keys
Parameters<Type>
- Constructs a
tuple type from the types used in the parameters of a function type Type
Partial<Type>
- Constructs a type
with all properties of Type
set to optionalPick<Type, Keys>
- Constructs a
type by picking the set of properties Keys
from Type
Readonly<Type>
- Constructs a type
with all properties of Type
set to readonly
, meaning the properties of the constructed type cannot be reassignedRecord<Keys, Type>
- Constructs
an object type whose property keys are Keys
and whose property values are Type
Required<Type>
- Constructs a type
consisting of all properties of Type
set to requiredReturnType<Type>
- Constructs a
type consisting of the return type of function type Type
parameterUncapitalize<StringType>
-
Converts the first character in the string to a lowercase equivalentUppercase<StringType>
-
Converts each character in the string to the uppercase versionts-essentials | typescript / type of dependency |
---|---|
^10.0.0 | ^4.5.0 / peer optional |
^9.4.0 | ^4.1.0 / peer optional |
^8.0.0 | ^4.1.0 / peer |
^5.0.0 | ^3.7.0 / peer |
^3.0.1 | ^3.5.0 / peer |
^1.0.1 | ^3.2.2 / dev |
^1.0.0 | ^3.0.3 / dev |
Special shout-out to active contributors:
And thanks goes to these wonderful people:
💻 - contributions, i.e. links to commits by the user on this project
Contributions of any kind welcome! Read more
No vulnerabilities found.
No security vulnerabilities found.