On this page
Overview
Type-fest is a collection of reusable TypeScript utility types. Types such as Except, Merge, ReadonlyDeep, Tagged, and Get help applications and libraries reshape objects and unions without reimplementing advanced type-level logic.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Reuse utilities for object, union, and deep transformations
The v5.10.0 README exposes utilities including Except, Merge, MergeDeep, PartialDeep, ReadonlyDeep, and RequireExactlyOne, covering transformations that are cumbersome to rebuild from the standard utility types alone.
Sources: [1]
Use Tagged, Exact, Get, and similar types in API design
The collection also includes types for tagged values, exact object shapes, and nested property lookup, which can help structure domain models and public library APIs.
Sources: [1]
Best fit
Fits TypeScript frontends and libraries with repeated advanced type transformations
It is useful when API responses, form models, configuration objects, or public library types repeatedly need deep optionality, selective keys, mutually exclusive properties, or tagged values.
Sources: [1]
Before adoption
v5.10.0 requires TypeScript 5.9+, ESM, and strict mode
The README requires TypeScript >=5.9, ESM, and strict: true. Package metadata also declares Node.js >=20, so older build toolchains should be checked before adoption.
Official sources
- [1]Type-fest v5.10.0 README(2026-10-05)
- [2]Type-fest v5.10.0 package metadata(2026-10-05)
- [3]Type-fest v5.10.0 release(2026-10-05)
- [4]Type-fest MIT license(2026-10-05)
- [5]Type-fest CC0 license(2026-10-05)
Supplemental curator note
Version 5.10.0 assumes TypeScript 5.9+, ESM, and strict mode. It is a type-only utility library, so keep it separate from runtime schema validation tools used for external inputs.
Try it in 3 steps
- 1
Install Type-fest 5.10.0 with TypeScript 5.9.2
Create an isolated ESM project and pin Type-fest plus a TypeScript 5.9 release that satisfies the README requirements.
demo=$(mktemp -d "${TMPDIR:-/tmp}/type-fest.XXXXXX") && cd "$demo" && npm init -y >/dev/null && npm pkg set type=module && npm install --save-exact type-fest@5.10.0 && npm install --save-exact --save-dev typescript@5.9.2 - 2
Enable strict mode and use the Except utility type
Enable the documented strict requirement and import the representative Except utility as a type-only dependency.
printf "%s\n" '{"compilerOptions":{"strict":true,"noEmit":true,"module":"NodeNext","moduleResolution":"NodeNext","target":"ES2022"}}' > tsconfig.json && printf "%s\n" "import type {Except} from 'type-fest';" "type User = {id: string; secret: string};" "const publicUser: Except<User, 'secret'> = {id: '1'};" "void publicUser;" > index.ts - 3
Type-check the project
Run the TypeScript compiler without emitting JavaScript and confirm that Type-fest's declarations resolve in the project.
npx tsc
Growth
Growth trends · Last 30 days
17,433 Stars
Trend data is still being collected.
Development activity
Last 90 days · weekly
- Commits (last 30 days)
- 7
- Open PRs
- 48
Development activity is still being collected.
Built with
Categories and tags
Categories
GitHub data
GitHub dataView detailed GitHub data
GitHub Topics
- typescript-definitions
- typescript
- types
- utilities
- npm-package
- Stars
- 17,433
- Forks
- 744
- Watchers
- 57
- Open issues
- 177
- Contributors
- 213
- Owner type
- User
- Primary language
- TypeScript
- License
- CC0-1.0
- Repository last updated
- Sep 18, 2026
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- Linaria12,350 Stars
3 shared tag(s) · 1 shared category(s) · Same language
keep CSS-in-JS authoring while extracting styles to static CSS at build time
TypeScript - Valibot9,027 Stars
3 shared tag(s) · 1 shared category(s) · Same language
combine small functions for runtime schema validation with TypeScript type inference
TypeScript - openapi-typescript8,391 Stars
3 shared tag(s) · 1 shared category(s) · Same language
generate runtime-free TypeScript types from OpenAPI 3.0 and 3.1 contracts
TypeScript - PurgeCSS8,050 Stars
3 shared tag(s) · 1 shared category(s) · Same language
scan content files and keep only selectors that are actually referenced
TypeScript - ts-toolbelt7,150 Stars
3 shared tag(s) · 1 shared category(s) · Same language
reuse 200+ type utilities for advanced Object, Union, Function, and other type computations
TypeScript - Superstruct7,127 Stars
3 shared tag(s) · 1 shared category(s) · Same language
compose small structs to validate JavaScript and TypeScript data at runtime
TypeScript
Report incorrect information
Tell us if any listing information is incorrect or outdated.