- b127a8a: Use TypeScript@^4.2.0 because of excessively deep and possibly infinite type instantiation limitation for
PathValue
andPaths
- 26be790: Fixed assignability of Mark* utility types which required removing support of TypeScript@<4.5
- 9935d80: Added
StrictDeepOmit
andStrictDeepPick
that support generic type and removed generic constraint on the second type parameter ofDeepOmit
andDeepPick
- 5b7650a: Add variadic XOR, up to 50 generic types
- b127a8a: Implement
Paths
andPathValue
to access object properties, array/tuple indices
- d2dbcf9: Added
CONVENTIONS.md
for reliable, consistent and predictable development - ed57101: Add support for types which explicitly extend Array inside types passed to
DeepRequired
. - 25f3f60: Add support of union types for arrays, tuples, objects and primitive in
isExact
- f88f757: Add TypeScript 5.3 and 5.4 support (fix a bug with
WeakKey
forWeakSet
andWeakMap
)
- bc3c474: Fix regression in TypeScript 5.1 with CamelCase
- ddb1bea: Make
typescript
optional as a peer dependency
- 8761667:
DeepPartial
,DeepRequired
,DeepWritable
andDeepReadonly
can update structure ofError
or interface which extendsError
- afccd35: Fix handling of readonly arrays in
isTuple
,DeepNullable
,DeepPartial
, andDeepUndefinable
- 0c215b9: Changed the
Tuple
's type implementation to only use a tuple type (instead of a union of a tuple type and an array type). - 544742e: Fix unique symbol
__OPAQUE_TYPE__
inOpaque
that cannot be used outside of ts-essentials - 4c45165: Improve the object constraint for
NonEmptyObject<T>
to not allow primitives - 66a6169: Improve the
ValueOf
utility type to cover the edge cases
- a86c5b5: Add
ReadonlyArrayOrSingle
which is a counterpart toArrayOrSingle
with the array being readonly - 14cfa7c: Add utility function
createFactoryWithConstraint
- c63e30e: Refactor
Tail
to use variadic tuple type - 8a28c53: Fix
DeepReadonly
for a union with an array of itself - 5989dda: Add union support to all Mark* methods:
MarkRequired
,MarkOptional
,MarkReadonly
andMarkWritable
- 8abe8a6: Fix
StrictExtract
usage for TypeScript@^4.6.0
- 5aa1f26: Add
NonEmptyArray
which ensures an array to have at least one item - fa03dda: Add
StrictExclude
, a stricter version ofExclude
- 6b27ee4: Add
MarkWritable
which unsets readonly for specified keys - e76a08a: Add
MarkReadonly
which sets readonly for specific keys
- 13504d0: Fix
DeepPartial
for normal arrays
- 08adddd: Remove
postinstall
script
- bf05a7e: Fix
DeepPick
andDeepOmit
for project with TypeScript 4.5 or newer - c338a99: Fix
DeepOmit
andDeepPick
for WeakMap in TypeScript 4.1 and 4.2
- a2ac470: Add
IsAny
which returns true if it'sany
, otherwise false - a2ac470: Add
ArrayOrSingle
- a2ac470: Add
DeepPick
with the validation of the filter - a2ac470: Add
CamelCase
andDeepCamelCaseProperties
for converting it from other cases
- a2ac470: Properly infer required fields for set, map, array and promise in
DeepOmit
andDeepPick
- a2ac470: Improve
DeepOmit
by removing 4 intersections for objects and applying generic restriction for Filter - 3541ee9: Replace
PropertyKey
withKeyofBase
to toleratekeyofStringsOnly
option in TypeScript - a2ac470: Adapt
OptionalKeys
andRequiredKeys
for union of objects
- aa879ca: Use TypeScript@^4.1.0 because of introduced recursive conditional types
- e39426b: Add
IsUnknown
which returns true if it'sunknown
, otherwise false - 6d10f69: Add
IsNever
which returns true if it'snever
, otherwise false - b580ac1: Add
isExact
function
- 7bf4fdb: Make
DeepRequired
as recursiveRequired
without removingnull
andundefined
- c463c70: Align
ReadonlySet
andReadonlyMap
inDeepUndefinable
with other sets and maps - 374431f: Fix
DeepPartial
andBuildable
forunknown
- 83458c0: Align
ReadonlySet
andReadonlyMap
inDeepNullable
with other sets and maps - 7bf4fdb: Add difference between
DeepRequired
andDeepNonNullable
in README - ec8d796: Allow only objects to be used in
StrictOmit
- f045817: Fix
DictionaryValues
forSafeDictionary
with number and string literals keys - ec8d796:
StrictOmit
returnsnever
for arrays and tuples
- 239e7e3: Use
typescript@^4.0.0
- ab6f68e: Add
StrictExtract
to check the original structure of type and extract it correctly - 239e7e3: Add
MergeN
: you can pass tuple of size N and it will recursively applyMerge
- b39ce66: Improve readme description about what's this project is all about
- 239e7e3: Add
DeepReadonly
support forunknown
type - 35e73b6:
IsTuple
now works with any tuple length - 239e7e3: Update readme description of
Opaque
- f917f9b: Refactor Opaque, now
__TYPE__
is not accessible at all