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 17 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
Add UnionMax type ( #1519 ) 061ef87
One column per quarter.
SharedUnionFieldsDeep : Ensure it doesn't distribute processed union over mapped type ( #1509 ) 07a04de
SharedUnionFieldsDeep: Ensure it doesn't distribute processed union over mapped type (#1509) 07a04deTypedArray: Add Float16Array (#1495) ca27cceWritable: Fix behavior with index signatures (#1470) 48ddc4bJsonify: Fix optional properties leaking undefined into the key set (#1484) 5339fb3IsLiteral*: Fix behavior with unions (#1482) 3425142StringToArray ( #1457 ) b773e84
StringToArray (#1457) b773e84StringLength (#1457) b773e84StringToNumber (#1446) 2a14c2dExtractExactly (#1445) 26f3c99LastArrayElement: Fix handling of tuples with optional elements (#1461) 8e5c69aSchema: Fix incorrect handling of any and unknown fields (#1459) 82ccfc3StringRepeat: Fix behavior with extremely large/small counts (#1455) 441ac27UnwrapRequired ( #1410 ) 3bfee8e
ExtendsStrict: Add distributiveUnions, strictNever & strictAny options (#1408) 9ea810bTupleOf: Improve implementation (#1441) 391e1bbRemovePrefix: Fix: Remove incorrect optimization and always fallback to string for non-literal prefixes (#1438) 9f35398DelimiterCase: Fix behavior with non-single character delimiters (#1424) 9b36590RemovePrefix: Fix any prefix behavior in non-strict mode (#1423) c49cb75DelimiterCase: Fix behavior with union delimiters (#1422) 96172c0ApplyDefaultOptions: Fix behavior with generic instantiations & any values (#1411) c46020dApplyDefaultOptions: Fix behavior with explicit undefined (#1407) 60bfd3fNonNullableDeep ( #1401 ) 1e8bd10
splitOnPunctuation option to CamelCase / PascalCase / KebabCase / SnakeCase (#1394) 852d016CamelCase: Add preserveLeadingUnderscores option (#1404) 5ca6564TsConfigJson: Add TypeScript 6.0 fields (#1406) ac4861dUnionToTuple: Fix behavior with large unions (#1405) 651f7eaExcludeExactly ( #1349 ) 0f923d0
Optional (#1374) 9b52980ExcludeExactly (#1349) 0f923d0ArrayLength (#1344) 59bd056UnionMember (#1368) 878b6dfSomeExtend (#1380) bbce298AndAll (#1383) 94aa3f8OrAll (#1378) 4c42d89UnionToTuple: Fix behavior when a union member is a supertype of another (#1349) 0f923d0ConditionalPickDeep: Fix returning {} instead of never when no keys match (#1360) 6af847aConditionalPick: Fix returning {} instead of never when no keys match (#1359) 3995003GreaterThan / LessThan / GreaterThanOrEqual / LessThanOrEqual: Fix behavior with the number type (#1363) cfea505PackageJson : Use LiteralUnion for engines field ( #1354 ) fc9e2bb
PackageJson: Use LiteralUnion for engines field (#1354) fc9e2bbIsUnion: Fix behavior when the entire union extends all individual members (#1353) b0321a5Paths: Fix leavesOnly behavior with never leaves (#1350) 2c34128Paths: Fix behavior with WeakMaps / WeakSets (#1348) ac3b50ePaths: Fix behavior with tuples containing optional elements with a rest element (#1346) 7c82a21Merge : Fix idempotency, so Merge<A, A> returns A ( #1336 ) 99e35a2
SimplifyDeep : Fix behavior with arrays ( #1337 ) a2a180d
MergeDeep : Remove extra undefined from optional properties ( #1319 ) a6af489
UnwrapPartial ( #1296 ) 99b0b07
PackageJson : Fix key type for DependencyOverrides ( #1307 ) 0430f56
PackageJson: Add overrides (#1287) 8beaa89
PackageJson: Add overrides (#1287) 8beaa89IsEqual: Fix generic inference (#1306) f7b2667ConditionalPickDeep / SimplifyDeep: Prevent mapping over built-ins (#1293) f14a75aArraySlice / StringSlice: Fix behavior with unions (#1291) 133258bhttps://github.com/sindresorhus/type-fest/compare/v5.2.0...v5.3.0
Add `ExclusifyUnion` type (#1278) 2b906fe
ExclusifyUnion type (#1278) 2b906feArrayElement type (#1270) 2afaa40CamelCase: Add splitOnNumbers option (#1290) ce2d244PackageJson: Add devEngines type (#1286) 3b4ad2eExcludeRestElement: Fix generic assignability with arrays (#1274) 12ef5b2GreaterThanOrEqual / LessThan: Fix behavior with operands like N and N | N + >0 (#1280) b2caa3fhttps://github.com/sindresorhus/type-fest/compare/v5.1.0...v5.2.0
ReadonlyTuple: Deprecate in favor of TupleOf (#1256) af4bebc
TupleOf (#1247) 7fb2f75Xor (#1254) ad04bc5SplitOnRestElement (#1166) 34b8fadExtractRestElement (#1166) 34b8fadExcludeRestElement (#1166) 34b8fadReadonlyTuple: Deprecate in favor of TupleOf (#1256) af4bebcTsConfigJson: Add missing lib enum values (#1263) 72f491fTsConfigJson: Add rewriteRelativeImportExtensions (#1262) 7d011cePartialDeep: Fix behavior with functions containing multiple call signatures (#1259) 3bd9de6IsEqual: Fix behaviour when instantiated with never and unknown (#1251) 785549fFixedLengthArray: Fix element type (#1246) ee29ef7is-equal: Fix handling with intersecting wrapped types (#1231) 5af60a1https://github.com/sindresorhus/type-fest/compare/v5.0.1...v5.1.0
https://github.com/sindresorhus/type-fest/compare/v5.0.0...v5.0.1
https://github.com/sindresorhus/type-fest/compare/v5.0.0...v5.0.1
Deprecate If* types in favor of a single `If` 4c2151a
type-fest requires strict: true in your tsconfig.StringKeyOf: Rename to KeyAsString e492c9cArrayTail: Enable preserveReadonly by default and remove the option b34b1d8CamelCase / CamelCasedProperties / CamelCasedPropertiesDeep / PascalCase / PascalCasedProperties / PascalCasedPropertiesDeep: Disable preserveConsecutiveUppercase by default 8226c1b
PartialDeep: Disable allowUndefinedInNonTupleArrays by default b3c4524Split: Enable strictLiteralChecks by default 544a846Paths: Default maxRecursionDepth 5 (was 10) 2ab5decObservableLike: Move to sub-export 2a1072eIf* types in favor of a single If 4c2151aAlphanumeric — Single alphanumeric character (A–Z, a–z, 0–9). 484e030AllExtend — Evaluates to true if every element of a tuple/array extends U. c8c6d55ConditionalSimplify — Simplifies a type’s unions/intersections with opt-in controls. b7a4771ConditionalSimplifyDeep — Deep version of ConditionalSimplify that recurses into objects. b7a4771DigitCharacter — Single ASCII digit character (0–9). 484e030ExcludeStrict — Non-distributive, stricter variant of Exclude<T, U>. e6f62a2ExtendsStrict — Non-distributive A extends B check. d71242aExtractStrict — Non-distributive, stricter variant of Extract<T, U>. 98d24faIsLowercase — Evaluates to true if a string literal is all lowercase. afe132cIsNullable — Evaluates to true if T includes null. 5067e25IsOptional — Evaluates to true if T includes undefined. 5067e25IsOptionalKeyOf — Evaluates to true if property K of T is optional. 93728b5IsReadonlyKeyOf — Evaluates to true if property K of T is readonly. 93728b5IsRequiredKeyOf — Evaluates to true if property K of T is required. 93728b5IsUnion — Evaluates to true if T is a union type. b3d92edIsUndefined — Evaluates to true if the type is exactly undefined. f7bc576IsUppercase — Evaluates to true if a string literal is all uppercase. afe132cLowercaseLetter — Single lowercase Latin letter (a–z). 484e030RemovePrefix — Removes a specified prefix from a string literal. 18a1c04UppercaseLetter — Single uppercase Latin letter (A–Z). 484e030Jsonify: Handle unknown as JsonValue 642bb13SetRequired / SetOptional / SetReadonly: Handle functions with properties a5e45d4Schema: Preserve arrays/remove extraneous unions 8a96def; drop undefined for recurseIntoArrays 1cb955bReadonlyKeysOf / WritableKeysOf: Add object constraint a6efbe0TsConfigJson: Add TypeScript 5.9 fields d2bda94Or: Fix with boolean, never, any 42d6106And: Fix with boolean, never, any b38ac60IsStringLiteral: Fix uncollapsed unions, and tagged types eb37799 / d1b35c7Paths: Fix behavior with index signatures 9926e5dConditionalKeys: Fix behavior with arrays and unions 4d7cc50RequiredDeep: Fix with undefined bfcdbc4Split: Fix template strings ending with interpolation 853b881ArrayTail: Fix fix non-tuple arrays f3aabd8UnionMin and UnionMax d52d5e7Huge thanks to all the contributors to this release, especially @som-sm 🙌
https://github.com/sindresorhus/type-fest/compare/v4.41.0...v5.0.0
Add `SetNonNullableDeep` type (#1117) b9606e7
SetNonNullableDeep type (#1117) b9606e7LessThan / GreaterThan / GreaterThanOrEqual: Fix behaviour with unions (#1116) afd809aRequireAllOrNone / RequireAtLeastOne / RequireExactlyOne / RequireOneOrNone: Fix behaviour with any and never (#1113) 8c154e9https://github.com/sindresorhus/type-fest/compare/v4.40.1...v4.41.0
PartialDeep: Fix behaviour with functions containing properties (#1108) 86a3a69
PartialDeep: Fix behaviour with functions containing properties (#1108) 86a3a69CamelCasedPropertiesDeep / DelimiterCasedPropertiesDeep / KebabCasedPropertiesDeep / PascalCasedPropertiesDeep / SnakeCasedPropertiesDeep: Fix behaviour when property value is unknown (#1112) cfcf9echttps://github.com/sindresorhus/type-fest/compare/v4.40.0...v4.40.1
Add `NonEmptyString` type (#1103) 19a9c37
NonEmptyString type (#1103) 19a9c37UnknownMap type (#1106) b4ace2dUnknownSet type (#1106) b4ace2dIsFloat / IsInteger: Fix instantiations with numbers represented using exponential notation (#1101) 21a92f6https://github.com/sindresorhus/type-fest/compare/v4.39.1...v4.40.0
OptionalKeysOf / WritableKeysOf: Fix generic assignability with keyof T (#1098) 1b41ed3
OptionalKeysOf / WritableKeysOf: Fix generic assignability with keyof T (#1098) 1b41ed3https://github.com/sindresorhus/type-fest/compare/v4.39.0...v4.39.1
ArrayTail: Add `preserveReadonly` option (#1091) 544271e
ArrayTail: Add preserveReadonly option (#1091) 544271ePartialDeep : Fix behaviour when strictNullChecks is disabled (#1096) 7536baeOptionalKeysOf / RequiredKeysOf: Fix instantiations with unions and arrays (#1089) e1ac7b2WritableKeysOf / ReadonlyKeysOf: Fix behavior with unions and optional properties (#1088) bbf9137https://github.com/sindresorhus/type-fest/compare/v4.38.0...v4.39.0
AsyncReturnType: Add support for PromiseLike (#1082) 72ccde9
AsyncReturnType: Add support for PromiseLike (#1082) 72ccde9DelimiterCase / SnakeCase / ScreamingSnakeCase / KebabCase: Fix instantiations containing punctuations (#1080) 063e28dDelimiterCase: Pass Options generic to all related types (#1078) 1974944CamelCasedPropertiesDeep: Make nested array objects respect the options (#1077) c11c9cahttps://github.com/sindresorhus/type-fest/compare/v4.37.0...v4.38.0
Sum: Add negative return value support (#1068) af5bfb7
Sum: Add negative return value support (#1068) af5bfb7Subtract: Add negative return value support (#1061) 2b85ae2Split: Add strictLiteralChecks option (#1067) cc93f85Split: Fix instantiations with unions (#1067) cc93f85Replace: Fix instantiations with unions (#1065) a733698DelimiterCase / SnakeCase / ScreamingSnakeCase / KebabCase: Fix default value for splitOnNumbers option (#1073) e462e72https://github.com/sindresorhus/type-fest/compare/v4.36.0...v4.37.0
TsConfigJson: Add TypeScript 5.8 fields (#1064) 918156a
TsConfigJson: Add TypeScript 5.8 fields (#1064) 918156aReplace: Add support for generating longer strings (#1060) 3c03a0dDelimiterCase: Internal improvements (#930) a463c30https://github.com/sindresorhus/type-fest/compare/v4.35.0...v4.36.0
Add `TupleToObject` type (#1055) c8149ec
TupleToObject type (#1055) c8149ecPaths: Add depth option (#1058) 2633e5bhttps://github.com/sindresorhus/type-fest/compare/v4.34.1...v4.35.0
OmitDeep: Fix import statement (#1052) e5b66a4
OmitDeep: Fix import statement (#1052) e5b66a4https://github.com/sindresorhus/type-fest/compare/v4.34.0...v4.34.1
Add `AllUnionFields` type (#997) 9aba4c3
AllUnionFields type (#997) 9aba4c3Paths: Add leavesOnly option (#1050) 7dfb307OmitDeep: Fix removal of multiple paths within arrays (#1049) fa6e31bhttps://github.com/sindresorhus/type-fest/compare/v4.33.0...v4.34.0
StringRepeat: Add support for generating longer strings & fix instantiations with unions (#1046) fbccaab
StringRepeat: Add support for generating longer strings & fix instantiations with unions (#1046) fbccaabSplit: Add support for longer strings (#1042) 49605b9Get: Optimize performance (#1031) cfb5947KeysOfUnion: Fix assignability with keyof (#1009) 4789c7cIsStringLiteral: Fix instantiations with infinite string types (#1044) e7800afSetRequiredDeep: Fix handling of unions in nested keys (#1037) bf5ce3cStringSlice: Fix return type when passing in non-literal (#1036) 979eccfSum/Subtract: Fix instantiations with unions (#1034) 69bfd51https://github.com/sindresorhus/type-fest/compare/v4.32.0...v4.33.0
`SetRequiredDeep` (#939) 3d54627
IsTuple (#1024) 1e0872dSetRequiredDeep (#939) 3d54627PartialDeep: Add allowUndefinedInNonTupleArrays option (#1019) 278df80SetRequired: Fix support for removal of optional modifiers from tuples (#1030) c897aadhttps://github.com/sindresorhus/type-fest/compare/v4.31.0...v4.32.0
SetFieldType: Add option to preserve property modifiers (#1017) 59517cb
SetFieldType: Add option to preserve property modifiers (#1017) 59517cbIsEqual: Fix identity issue (#1012) 591700aSetOptional: Fix instantiations with index signatures (#1014) cb269ffSetRequired: Fix instantiations with index signatures (#1014) cb269ffSetReadonly: Fix instantiations with index signatures (#1014) cb269ffhttps://github.com/sindresorhus/type-fest/compare/v4.30.2...v4.31.0
Fix missing export (#1011) 527d600
SetOptional/SetRequired/SetReadonly: Fix when the second argument is any (#1007) fdbcb11SetOptional: Fix when instantiated with unions (#1007) fdbcb11https://github.com/sindresorhus/type-fest/compare/v4.30.1...v4.30.2
Arrayable: Make it more usable by removing readonly (#1003) a128f69
Arrayable: Make it more usable by removing readonly (#1003) a128f69https://github.com/sindresorhus/type-fest/compare/v4.30.0...v4.30.1
Add `SharedUnionFields` type (#994) a716c29
SharedUnionFields type (#994) a716c29ArrayTail: Fix support for optional parameters (#977) f6b1387https://github.com/sindresorhus/type-fest/compare/v4.29.1...v4.30.0
IsAny: Fix circular constraint error on TypeScript 5.4+ (#993) 32d94dd
IsAny: Fix circular constraint error on TypeScript 5.4+ (#993) 32d94ddhttps://github.com/sindresorhus/type-fest/compare/v4.29.0...v4.29.1
Add `IntClosedRange` type (#992) d7b692b
IntClosedRange type (#992) d7b692bSchema: Add recurseIntoArrays option (#960) fbbb8bahttps://github.com/sindresorhus/type-fest/compare/v4.28.1...v4.29.0
SharedUnionFieldsDeep: Fix support for optional fields (#988) 4b49b93
SharedUnionFieldsDeep: Fix support for optional fields (#988) 4b49b93https://github.com/sindresorhus/type-fest/compare/v4.28.0...v4.28.1
TsConfigJson: Add TypeScript 5.7 fields (#987) 9d6fff3
TsConfigJson: Add TypeScript 5.7 fields (#987) 9d6fff3https://github.com/sindresorhus/type-fest/compare/v4.27.1...v4.28.0
SharedUnionFieldsDeep: Fix propagation for non union root types (#984) f215f9f
SharedUnionFieldsDeep: Fix propagation for non union root types (#984) f215f9fArraySlice: Fix support for union input (#986) 0efbae3https://github.com/sindresorhus/type-fest/compare/v4.27.0...v4.27.1
Add `Words` type (#975) 13c0c83
Words type (#975) 13c0c83Get: Fix handling of paths with number template literal (#968) b93f54aTsConfigJson: Add noCheck to compilerOptions (#981) a470913https://github.com/sindresorhus/type-fest/compare/v4.26.1...v4.27.0
Exact: Fix usage with recursive types and unions (#949) 91f6d39
Exact: Fix usage with recursive types and unions (#949) 91f6d39https://github.com/sindresorhus/type-fest/compare/v4.26.0...v4.26.1
Add `UnionToTuple` type (#945) 1f4f7a1
UnionToTuple type (#945) 1f4f7a1https://github.com/sindresorhus/type-fest/compare/v4.25.0...v4.26.0
Add StringRepeat type (#938) a83e87e
StringRepeat type (#938) a83e87eArrayable type #270 (#935) 9aabcb9https://github.com/sindresorhus/type-fest/compare/v4.24.0...v4.25.0
Path: Add bracketNotation option (#926) 3b15a94
Path: Add bracketNotation option (#926) 3b15a94https://github.com/sindresorhus/type-fest/compare/v4.23.0...v4.24.0
Paths: Add maxRecursionDepth option (#920) 052e887
Paths: Add maxRecursionDepth option (#920) 052e887https://github.com/sindresorhus/type-fest/compare/v4.22.1...v4.23.0
Fix missing exported internal types (#918) 4b74444
https://github.com/sindresorhus/type-fest/compare/v4.22.0...v4.22.1
`FindGlobalType` (#908) 0086cd6
ArrayTail (#913) 128b21eNonEmptyTuple (#915) bb57638FindGlobalType (#908) 0086cd6FindGlobalInstanceType (#908) 0086cd6RequireX types' second parameter is optional (#907) fee4e04StructuredCloneable: Include web-specific types when available (#908) 0086cd6Exact: Fix type when class is present (#911) bf85819https://github.com/sindresorhus/type-fest/compare/v4.21.0...v4.22.0
`StructuredCloneable` (#897) 737550b
StructuredCloneable (#897) 737550bJsonify: Convert undefined to null in union element of array (#901) 60c1024Exact: Fix support for Date in union (#902) d89a709CamelCasedPropertiesDeep: Fix handling of non-recursive types inside target type (#890) 476024dhttps://github.com/sindresorhus/type-fest/compare/v4.20.1...v4.21.0
Schema: Fix handling of arrays (#887) c570ec2
Schema: Fix handling of arrays (#887) c570ec2Paths: Prevent infinite recursion (#891) 7d4e875https://github.com/sindresorhus/type-fest/compare/v4.20.0...v4.20.1
SimplifyDeep: Support array (#888) a6ab051
SimplifyDeep: Support array (#888) a6ab051IsLiteral: Return false for tagged types (#886) 587380chttps://github.com/sindresorhus/type-fest/compare/v4.19.0...v4.20.0
Add `SimplifyDeep` type (#882) 3a04fcf
SimplifyDeep type (#882) 3a04fcfhttps://github.com/sindresorhus/type-fest/compare/v4.18.3...v4.19.0
ConditionalKeys: Fix filtering out never type (#881) 863511d
ConditionalKeys: Fix filtering out never type (#881) 863511dhttps://github.com/sindresorhus/type-fest/compare/v4.18.2...v4.18.3
CamelCasedPropertiesDeep: Fix tuple being incorrectly turned into array (#818) 4e7bb18
CamelCasedPropertiesDeep: Fix tuple being incorrectly turned into array (#818) 4e7bb18https://github.com/sindresorhus/type-fest/compare/v4.18.1...v4.18.2
Fix missing exports (#876) ed860e9
https://github.com/sindresorhus/type-fest/compare/v4.18.0...v4.18.1
Opaque: Mark as deprecated (#867) ef7b580
Zero: Fix missing export (#870) 91a2b1e
IsNull d639574Zero: Fix missing export (#870) 91a2b1ehttps://github.com/sindresorhus/type-fest/compare/v4.16.0...v4.17.0
Integer: Fix handling of some edge-cases (#857) f5b09de
`SingleKeyObject` (#849) fa1c3f3
SingleKeyObject (#849) fa1c3f3IfEmptyObject (#849) fa1c3f3ConditionalKeys: Fix TypeScript 5.4 compatibility (#852) 0fb2d62WritableDeep: Fix TypeScript 5.4 compatibility (#839) 2878773ReadonlyDeep: Fix TypeScript 5.4 compatibility (#839) 2878773https://github.com/sindresorhus/type-fest/compare/v4.14.0...v4.15.0
Add `DistributedPick` type (#841) fa4099c
DistributedPick type (#841) fa4099chttps://github.com/sindresorhus/type-fest/compare/v4.13.1...v4.14.0
SetParameterType: Properly fix compatibility with TypeScript 5.4 (#836) a186adb
SetParameterType: Properly fix compatibility with TypeScript 5.4 (#836) a186adbhttps://github.com/sindresorhus/type-fest/compare/v4.13.0...v4.13.1
Your coding agent can read these notes before it upgrades. Set up the MCP server →