NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #19 most downloaded on npm
A collection of essential TypeScript types
Last release 12 days ago
17 Sep 2026
Ships fairly regularly
a new release about every 4 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
8 years old
194 releases · first in 2019
`DistributedOmit` (#820) bc49577
DistributedOmit (#820) bc49577ArraySlice: Support array spread (#832) d2d0d01SetParameterType: Fix compatibility with TypeScript 5.4 (#835) 2bc451eOmitDeep: Fix handling for when the given path is not matched (#834) 4f14bffhttps://github.com/sindresorhus/type-fest/compare/v4.12.0...v4.13.0
https://github.com/sindresorhus/type-fest/compare/v4.11.1...v4.12.0
ArraySliceStringSliceIsNegativeGreaterThanGreaterThanOrEqualLessThanLessThanOrEqualSumSubtracthttps://github.com/sindresorhus/type-fest/compare/v4.11.1...v4.12.0
One column per quarter.
OmitDeep: Fix internally imported type (#824) 2061925
OmitDeep: Fix internally imported type (#824) 2061925https://github.com/sindresorhus/type-fest/compare/v4.11.0...v4.11.1
Tagged: Add metadata support (#723) 3ec8dba
OmitDeep (#816) 0e196aaArraySplice (#816) 0e196aaTagged: Add metadata support (#723) 3ec8dbahttps://github.com/sindresorhus/type-fest/compare/v4.10.3...v4.11.0
PartialOnUndefinedDeep: Fix it incorrectly removing non-optional properties when the input type contains an index signature (#764) 2f4b55a
PartialOnUndefinedDeep: Fix it incorrectly removing non-optional properties when the input type contains an index signature (#764) 2f4b55ahttps://github.com/sindresorhus/type-fest/compare/v4.10.2...v4.10.3
MergeDeep: Fix compatibility with TypeScript 5.4 (#807) 5f6165a
MergeDeep: Fix compatibility with TypeScript 5.4 (#807) 5f6165ahttps://github.com/sindresorhus/type-fest/compare/v4.10.1...v4.10.2
Fix support for exactOptionalPropertyTypes: true tsconfig (#804) a54e313
exactOptionalPropertyTypes: true tsconfig (#804) a54e313https://github.com/sindresorhus/type-fest/compare/v4.10.0...v4.10.1
Get: Fix handling of readonly array (#799) 4a38651
Get: Fix handling of readonly array (#799) 4a38651SharedUnionFieldsDeep: Skip if input type is not a union type (#798) 6f1db93DelimiterCasedPropertiesDeep: Don't recurse into intersection type that include primitive value (#789) eb96609Merge: Don't turn undefined into optional key (#787) 0aec247https://github.com/sindresorhus/type-fest/compare/v4.9.0...v4.10.0
`SharedUnionFieldsDeep` (#783) 94bb3d3
SharedUnionFieldsDeep (#783) 94bb3d3ReadonlyDeep: Fix usage with properties defined with void (#782) a919f93ConditionalPickDeep: Support interface (#776) ebb7a59https://github.com/sindresorhus/type-fest/compare/v4.8.3...v4.9.0
MergeDeep: Fix optional key when value type is any or never (#777) 609c097
MergeDeep: Fix optional key when value type is any or never (#777) 609c097Paths: Ensure it doesn't recurse into Map or Set's prototype properties (#772) 6759853https://github.com/sindresorhus/type-fest/compare/v4.8.2...v4.8.3
DelimiterCasedPropertiesDeep: Fix handing of string (#768) e26c779
DelimiterCasedPropertiesDeep: Fix handing of string (#768) e26c779https://github.com/sindresorhus/type-fest/compare/v4.8.1...v4.8.2
Jsonify: Fix usage with readonly array f8019c2
Jsonify: Fix usage with readonly array f8019c2Element to type BuiltIns (#745)" 1b25feb
DOM types are not available.https://github.com/sindresorhus/type-fest/compare/v4.8.0...v4.8.1
PickDeep: Support interface (#755) 1c65935
PickDeep: Support interface (#755) 1c65935Paths: Support interface (#746) 8fa831eObjectValue: Support any kind of number index (#753) 972815cClass: Fix type inference (#701) 7294cf0DelimiterCasedPropertiesDeep: Improve array handling (#744) 59411c8PartialDeep : Don't recurse into HTMLElement (#745) d42ea80preserveConsecutiveUppercase to PascalCase and friends (#749) e58127ahttps://github.com/sindresorhus/type-fest/compare/v4.7.1...v4.8.0
Revert "PartialDeep: Ensure it doesn't recurse into prototype properties" (#743) 9f47b11
PartialDeep: Ensure it doesn't recurse into prototype properties" (#743) 9f47b11https://github.com/sindresorhus/type-fest/compare/v4.7.0...v4.7.1
Writable: Support array, map, and set (#726) b9723d4
PickDeep (#737) c60cabaPaths (#741) 996171bSetFieldType (#721) 964466cUnknownArray (#740) 30aa0adWritable: Support array, map, and set (#726) b9723d4PartialDeep: Ensure it doesn't recurse into prototype properties (#738) 5eeac02ConditionalPickDeep: Ensure it doesn't recurse into prototype properties (#736) 9960ba4https://github.com/sindresorhus/type-fest/compare/v4.6.0...v4.7.0
`SetParameterType` (#722) 9f2388d
ArrayValues (#720) 6c76e4aArrayIndices (#716) c330852SetParameterType (#722) 9f2388dLastArrayElement: Fix handling of tuple with spread elements (#727) 9630089PartialDeep: Skip constructor (#730) 75edeefReadonlyDeep: Skip constructor (#728) 3ee234aWritableDeep: Fix array handling (#724) 9baccc3https://github.com/sindresorhus/type-fest/compare/v4.5.0...v4.6.0
`UndefinedOnPartialDeep` (#700) d8b44cb
UndefinedOnPartialDeep (#700) d8b44cbKeysOfUnion (#709) 0517399IntRange (#707) e5d145dJsonify: Improve type inference for objects with .toJSON() extending primitives (#690) 157ed07OverrideProperties: Fix autocomplete in the type (#712) fcdcfe9https://github.com/sindresorhus/type-fest/compare/v4.4.0...v4.5.0
UnionToIntersection: Allow indexing by the resulting type (#682) 61f2ff9
UnionToIntersection: Allow indexing by the resulting type (#682) 61f2ff9https://github.com/sindresorhus/type-fest/compare/v4.3.3...v4.4.0
IsLiteral: Don't restrict generic type (#684) 4378507
IsLiteral: Don't restrict generic type (#684) 4378507Jsonify: Fix handling of arrays (#673) 025f6e9https://github.com/sindresorhus/type-fest/compare/v4.3.2...v4.3.3
Jsonify: Fix handling of nested objects with only a name property (#691) 5351533
Jsonify: Fix handling of nested objects with only a name property (#691) 5351533https://github.com/sindresorhus/type-fest/compare/v4.3.1...v4.3.2
https://github.com/sindresorhus/type-fest/compare/v4.3.0...v4.3.1
https://github.com/sindresorhus/type-fest/compare/v4.3.0...v4.3.1
This a better Opaque type that supports multiple tags (nesting).
Tagged (#672) 277ada2
Opaque type that supports multiple tags (nesting).UnwrapTagged (#672) 277ada2NonEmptyObject (#623) 98bb74dhttps://github.com/sindresorhus/type-fest/compare/v4.2.0...v4.3.0
Add `UnknownRecord` type (#660) b2bcc38
UnknownRecord type (#660) b2bcc38ReadonlyDeep: Reduce likelyhood of "instantiation excessively deep" errors (#650) cff9808https://github.com/sindresorhus/type-fest/compare/v4.1.0...v4.2.0
Add `RequireOneOrNone` type (#654) 0a098c6
RequireOneOrNone type (#654) 0a098c6https://github.com/sindresorhus/type-fest/compare/v4.0.0...v4.1.0
The alias was deprecated a long time ago. If you have RemoveIndexSignature, simply rename it to OmitIndexSignature.
RemoveIndexSignature for OmitIndexSignature 03703f0
RemoveIndexSignature, simply rename it to OmitIndexSignature.Jsonify: Fix handling of tuples (#638) d743202LastArrayElement: Avoid recursion (#647) 3475a02The next major version of type-fest will move to ESM. It's time to start thinking about migrating if you haven't already. Learn more.
https://github.com/sindresorhus/type-fest/compare/v3.13.1...v4.0.0
Revert "Jsonify: Fix handling of tuples (#638)" 9fdac37
Jsonify: Fix handling of tuples (#638)" 9fdac37
type-fest.https://github.com/sindresorhus/type-fest/compare/v3.13.0...v3.13.1
`HasReadonlyKeys` (#640) a8d6ad0
HasReadonlyKeys (#640) a8d6ad0HasWritableKeys (#640) a8d6ad0Jsonify: Fix handling of tuples (#638) 605b901prototype property when using Class and AbstractClass types (#632) 8edb681https://github.com/sindresorhus/type-fest/compare/v3.12.0...v3.13.0
Add `SetReadonly` type (#624) b2e22fb
SetReadonly type (#624) b2e22fbhttps://github.com/sindresorhus/type-fest/compare/v3.11.1...v3.12.0
PackageJson: Fix undefined being allowed in exports (#626) dc38b70
PackageJson: Fix undefined being allowed in exports (#626) dc38b70SetRequired: Fix performance regression (#628) 6a82900https://github.com/sindresorhus/type-fest/compare/v3.11.0...v3.11.1
`WritableKeysOf` (#619) a3e1589
WritableKeysOf (#619) a3e1589ReadonlyKeysOf (#619) a3e1589RequiredDeep (#614) c2bf374typescript as a peer dependency f7139de
https://github.com/sindresorhus/type-fest/compare/v3.10.0...v3.11.0
Add typescript as a peer dependency (#606) 5e6d9e8
typescript as a peer dependency (#606) 5e6d9e8SetRequired: Fix it incorrectly combining individual key types (#611) 9c12497OverrideProperties: Fix a missing case (#609) 44ec7echttps://github.com/sindresorhus/type-fest/compare/v3.9.0...v3.10.0
Add `OverrideProperties` type (#597) c365837
OverrideProperties type (#597) c365837Join: Support more cases (#594) bb81314https://github.com/sindresorhus/type-fest/compare/v3.8.0...v3.9.0
Add IsX/IfX types for any/never/unknown (#564) 4045737
IsX/IfX types for any/never/unknown (#564) 4045737LiteralToPrimitiveDeep type (#584) 5374588https://github.com/sindresorhus/type-fest/compare/v3.7.2...v3.8.0
Fix Merge with optional any value (#583) 60a057b
Merge with optional any value (#583) 60a057bhttps://github.com/sindresorhus/type-fest/compare/v3.7.1...v3.7.2
Fix missing export (#580) 3deac35
https://github.com/sindresorhus/type-fest/compare/v3.7.0...v3.7.1
`IsStringLiteral` (#563) 9d00bac
TaggedUnion (#566) 2e1cec8IsLiteral (#563) 9d00bacIsStringLiteral (#563) 9d00bacIsNumericLiteral (#563) 9d00bacIsBooleanLiteral (#563) 9d00bacIsSymbolLiteral (#563) 9d00bacAbstractClass (#559) 9b12767AbstractConstructor (#559) 9b12767Except: Add requireExactProps option (#560) c5743c9TsConfigJson: Add TypeScript 5.0 options (#573) aafc938https://github.com/sindresorhus/type-fest/compare/v3.6.1...v3.7.0
Join: Fix usage of single element const tuple (#558) 747e29b
Join: Fix usage of single element const tuple (#558) 747e29bhttps://github.com/sindresorhus/type-fest/compare/v3.6.0...v3.6.1
PackageJson: Fix Imports and Exports types (#555) 3ebab0d
WritableDeep (#540) 7538c05PackageJson: Fix Imports and Exports types (#555) 3ebab0dhttps://github.com/sindresorhus/type-fest/compare/v3.5.7...v3.6.0
TsConfigJson: Fix Plugin type (#554) e3b1e96
TsConfigJson: Fix Plugin type (#554) e3b1e96https://github.com/sindresorhus/type-fest/compare/v3.5.6...v3.5.7
Fix Simplify to actually expand type-hints (#553) aaef3e3
Simplify to actually expand type-hints (#553) aaef3e3https://github.com/sindresorhus/type-fest/compare/v3.5.5...v3.5.6
PackageJson: Make Imports object properties optional (#551) a729046
PackageJson: Make Imports object properties optional (#551) a729046https://github.com/sindresorhus/type-fest/compare/v3.5.4...v3.5.5
JsonValue: Fix support for readonly arrays (#549) 311051c
JsonValue: Fix support for readonly arrays (#549) 311051chttps://github.com/sindresorhus/type-fest/compare/v3.5.3...v3.5.4
Exact: Fix handling of deep optional unions (#546) 5125e1b
Exact: Fix handling of deep optional unions (#546) 5125e1bhttps://github.com/sindresorhus/type-fest/compare/v3.5.2...v3.5.3
CamelCase: Fix some cases where it would incorrectly resolve to never
CamelCase: Fix some cases where it would incorrectly resolve to neverTrim: Remove all whitespace, not just spaceshttps://github.com/sindresorhus/type-fest/compare/v3.5.1...v3.5.2
TsConfigJson: Add missing ES2022 (#536) 1e76932
TsConfigJson: Add missing ES2022 (#536) 1e76932https://github.com/sindresorhus/type-fest/compare/v3.5.0...v3.5.1
Join: Support const tuple values (#533) db81191
IsEqual (#522) e5a3a57Join: Support const tuple values (#533) db81191TsConfigJson: Sync with latest TypeScript version (#529) 9f04028CamelCase: Fix handling of non-literal strings (#531) 00b13f8https://github.com/sindresorhus/type-fest/compare/v3.4.0...v3.5.0
Exact: Fix handling of Opaque types (#525) 84269a7
GlobalThis (#511) 17dace9Exact: Fix handling of Opaque types (#525) 84269a7https://github.com/sindresorhus/type-fest/compare/v3.3.0...v3.4.0
Jsonify: Add "jump to definition" and any support (#519) 2071f47
Jsonify: Add "jump to definition" and any support (#519) 2071f47SetNonNullable: Fix usage in type predicate context (#515) 9bae03bhttps://github.com/sindresorhus/type-fest/compare/v3.2.0...v3.3.0
TupleToUnion: Support array (#504) a68f6b2
Jsonifiable (#492) e11ab80TupleToUnion: Support array (#504) a68f6b2CamelCase: Add preserveConsecutiveUppercase option (#501) b11f017PackageJson: Strict check for imports (#478) 846f4dbJsonify: Make it look deeper (#498) e11d30bJsonify: Fix usage with empty Set and Map (#497) f24821bhttps://github.com/sindresorhus/type-fest/compare/v3.1.0...v3.2.0
Add (experimental) `MergeDeep` type (#452) fedbc44
MergeDeep type (#452) fedbc44
SetNonNullable: Make it possible to apply it to all keys (#482) 7d492c8
https://github.com/sindresorhus/type-fest/compare/v3.0.0...v3.1.0
Welcome @skarab42 as a maintainer 🎉 f3a5e4e
Mutable type to Writable ff0de63PromiseValue type in favor of the built-in Awaited type 28f3e48Get: Make the strict option true by default a7f367dPartialDeep: Make the recurseIntoArrays option false by default db89d9cSimplify: Remove the deep option (#441) bbccfb8
SimplifyDeep type. So if you depend on this type, defer upgrading until it's added.EmptyObject (#447) f46b85aIsEmptyObject (#447) f46b85aTupleToUnion (#440) eac8c6fOmitIndexSignature (#453) 28e55b9PickIndexSignature (#453) 28e55b9ConditionalPickDeep (#444) 3cb67d7ConditionalSimplify (#442) beaabe1ConditionalSimplifyDeep (#442) beaabe1Merge: Add index signatures support and improve performances (#455) 850ac04DelimiterCase: Support screaming snake case as input (#448) f53e3dcJsonify: Add support for optional object keys (#445) d83d62cPackageJson: Add packageManager field (#446) ac5b821TsConfigJson: Add some Module values 1003d5dDelimiterCase: Fix regression after TypeScript 4.8 (#464) 2a2f310Merge: Fix index signature type overwrite (#460) eb7f08bMerge: Fix optional keys and type override (#456) 2e443e2PackageJson: Fix the type (#465) f3b13e3JsonObject: Fix the type (#465) f3b13e3https://github.com/sindresorhus/type-fest/compare/v2.19.0...v3.0.0
`SetNonNullable` (#431) 1a69e63
SetNonNullable (#431) 1a69e63Exact: Support array union (#421) edcad04PackageJson: Support condition object in exports array (#439) 290e3a2https://github.com/sindresorhus/type-fest/compare/v2.18.1...v2.19.0
Jsonify: Do not downgrade tuples to arrays (#433) 8a014e5
Jsonify: Do not downgrade tuples to arrays (#433) 8a014e5Spread: Support arrays/tuples (#435) 96acab1https://github.com/sindresorhus/type-fest/compare/v2.18.0...v2.18.1
`PartialOnUndefinedDeep` (#426) 1cbd351
Spread (#427) efba9f4PartialOnUndefinedDeep (#426) 1cbd351https://github.com/sindresorhus/type-fest/compare/v2.17.0...v2.18.0
Add `recurseIntoArrays` option for PartialDeep (#400) 3777469
recurseIntoArrays option for PartialDeep (#400) 3777469https://github.com/sindresorhus/type-fest/compare/v2.16.0...v2.17.0
`OptionalKeysOf` (#405) f0b1c3f
OptionalKeysOf (#405) f0b1c3fHasOptionalKeys (#405) f0b1c3fRequiredKeysOf (#405) f0b1c3fHasRequiredKeys (#405) f0b1c3fSimplify: Add deep option (#414) 96fe795Replace: Fix the all option (#416) 1483de3Includes: Fix false-positive when the array contains null and you are checking against undefined (#413) de5e7fcSimplify: Fix handling of some types (#414) 96fe795https://github.com/sindresorhus/type-fest/compare/v2.15.1...v2.16.0
Don't use BigInt (#412) 095831c
BigInt (#412) 095831chttps://github.com/sindresorhus/type-fest/compare/v2.15.0...v2.15.1
Make the Jsonify type more correct (#410) 8ca2959
Jsonify type more correct (#410) 8ca2959https://github.com/sindresorhus/type-fest/compare/v2.14.0...v2.15.0
Add `UnwrapOpaque` type (#403) d4d4481
UnwrapOpaque type (#403) d4d4481https://github.com/sindresorhus/type-fest/compare/v2.13.1...v2.14.0
Fix TsConfigJson to require paths array (#404) 74891f0
TsConfigJson to require paths array (#404) 74891f0https://github.com/sindresorhus/type-fest/compare/v2.13.0...v2.13.1
Your coding agent can read these notes before it upgrades. Set up the MCP server →