Back to Explore

sindresorhus/type-fest

GitHub
3 updates · last 90 days1 watchersOpen source

Last release:

type-fest is a collection of essential TypeScript types you can add as a dependency or copy and paste into your project. It provides utility types like Except and deep merge or mutable/readonly helpers to help you model data more precisely in TypeScript.

Project status

  • Actively maintained: The repo shows very recent activity (last upstream push 2026-07-08, with a v5.8.0 update on 2026-07-04), and multiple versioned updates continue throughout 2025-12 to 2026-07.
  • Apparent update cadence: Updates arrive fairly regularly, about every 3 to 7 weeks on average in the 2026 window (v5.4.x in Jan-Feb, v5.5.0 in Mar, v5.6.0 in Apr, v5.7.0 in May, v5.8.0 in early Jul).

AI summary generated

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • v5.8.0

    v5.8.0 adds several new string-related type utilities (StringToNumber, StringToArray, StringLength) and a stricter ExtractExactly type. It also improves StringRepeat to support much larger counts, and fixes edge cases in LastArrayElement (optional tuple elements) and Schema (any/unknown handling).

    Features
  • v5.7.0

    v5.7.0 adds two new string and object utility types, RemoveSuffix and UnwrapRequired. It also extends ExtendsStrict with new customization options (distributiveUnions, strictNever, strictAny) and improves TupleOf and DelimiterCase behavior, alongside multiple targeted fixes.

    Features
  • v5.6.0

    type-fest v5.6.0 adds several new utility types (Absolute, NonNullableDeep, UnionLength) and extends case-conversion types with additional options like splitOnPunctuation and preserveLeadingUnderscores. It also includes a fix for UnionToTuple with large unions, plus updates to TsConfigJson to support newer TypeScript 6.0 fields.

    Features
  • v5.5.0

    type-fest v5.5.0 introduces several new type utilities (Optional, ArrayLength, AndAll, OrAll, SomeExtend, UnionMember, ExcludeExactly) and includes fixes for ConditionalPick, ConditionalPickDeep, UnionToTuple, and numeric comparison types when the inputs involve the non-literal `number` type. It also contains additional internal type-definition refactors and tooling (lint rule) changes that are not covered in the release notes.

    Features
  • v5.4.4

    v5.4.4 focuses on correctness fixes in type-fest, mainly around union detection (IsUnion) and path generation (Paths), plus improved typing for PackageJson.engines. The release notes list several targeted edge cases, but the diff also shows broader internal changes and an unrelated ESLint validation rule update.

  • v5.4.3

    v5.4.3 contains type-level fixes for `Merge` and `Paths`. The release notes document `Merge` idempotency and a `Paths` fix for generic types, but the code diff also shows additional, behavior-changing updates to path generation and `IsNumberLike` edge cases.

    Breaking
  • v5.4.2

    type-fest v5.4.2 focuses on fixing TypeScript type behavior. It updates the `Merge` type to handle unions more correctly, and adjusts `SimplifyDeep` to fix how arrays are simplified.

  • v5.4.1

    v5.4.1 updates the type-level implementation of MergeDeep in type-fest, focusing on how optional properties and undefined are represented in the merged result. Release notes describe removal of extra undefined from optional properties, and the diff shows targeted conditional type adjustments plus a change in how requiredness is computed during record merges.

  • v5.4.0

    v5.4.0 of type-fest primarily introduces three new exported utility types: ObjectMerge, UnwrapPartial, and ArrayReverse. In the repo, a new ObjectMerge/ArrayReverse type implementation is added, and the project also updates its JSDoc codeblock validation tooling and CI memory settings.

    Features
  • v5.3.1

    v5.3.1 contains a type-only fix to the `PackageJson` type definitions. Specifically, it updates the `DependencyOverrides` key typing and adjusts tests accordingly to ensure the expected `keyof` behavior.

  • v5.3.0

    Type-fest v5.3.0 focuses on type-level fixes: it corrects generic inference in `IsEqual`, prevents `ConditionalPickDeep` and `SimplifyDeep` from mapping over built-in types, and improves `ArraySlice` and `StringSlice` behavior when unions are involved. The release notes do not mention any breaking API changes for library consumers.