type-fest
A collection of essential, ready-made TypeScript utility types beyond the built-in standard library.
Repository Health
Technical Analysis
type-fest is a large collection of TypeScript utility types that fill gaps in TypeScript’s built-in type toolbox — types like PartialDeep, CamelCase, Merge, Simplify, Except, and Jsonify that are commonly needed but not shipped with the language itself. Rather than every project reinventing the same conditional and mapped types, type-fest centralizes over 200 well-tested, documented type definitions covering objects, arrays, strings, JSON, async utilities, and more.
Because the package is types-only — it has zero runtime code or JavaScript output — adding it as a dependency has no effect on bundle size or runtime behavior; it exists purely to be imported in .d.ts/.ts files. Types can also be copy-pasted individually without adding the dependency at all, per the project’s own stated policy.
What You Get
- Object utilities like
PartialDeep,Merge,Except,Simplify, andSetRequiredfor common type transformations TypeScript doesn’t ship natively - String literal utilities such as
CamelCase,KebabCase,SnakeCase, andDelimiter-based case conversions at the type level - JSON-focused types like
JsonifyandJsonValuefor accurately typing values that surviveJSON.stringify/parseround-trips - Array utilities including
ArrayElement,ArraySlice,ArrayReverse, and fixed-length tuple helpers - Async and function types such as
AsyncReturnType,Asyncify, andPromisablefor working with sync/async interop - Zero runtime footprint — the package ships only
.d.tsdeclaration files, so it never appears in a compiled JavaScript bundle
Common Use Cases
- Typing configuration objects that need deep partials or deep readonly variants without hand-writing recursive mapped types
- Converting between naming conventions (snake_case API responses to camelCase application models) at the type level
- Typing values that pass through JSON serialization boundaries, such as API payloads or localStorage-persisted state
- Building strongly-typed utility functions in library code that need generic helpers like
MergeorExceptfor parameter shaping - Reducing duplicated one-off utility type definitions across a large TypeScript codebase or monorepo
Under The Hood
Architecture - Each utility type lives in its own file under source/ (215 files as of this analysis), individually exported and re-exported from the root index.d.ts, so the package has no shared runtime module graph to reason about — just a flat, well-organized collection of independent type definitions, many of which are documented with JSDoc comments and usage examples directly in the .d.ts file. This one-type-per-file structure keeps additions and reviews isolated and makes it straightforward for maintainers to accept community-contributed types without touching unrelated code.
Tech Stack - The package is TypeScript-only with no JavaScript runtime output; tsconfig.json and xo.config.js (plus custom lint-rules/lint-processors) enforce style and type-checking across all 215+ definition files. It has zero runtime dependencies, and the entire distribution consists of declaration files plus documentation.
Code Quality - The test-d/ directory contains 197 type-level test files (using tsd or an equivalent type-assertion tool), one per utility type in most cases, verifying that each type resolves to the expected shape for representative inputs — a testing discipline appropriate for a types-only package where “correctness” means type inference behaves as documented. Dual CC0-1.0 and MIT licensing files are both present, and the project maintains an active CLAUDE.md contributor guide alongside its human-facing contributing guidelines.
API Design - Every exported type is self-contained and named descriptively (PartialDeep, CamelCasedProperties, SetRequired), so most usages require nothing more than a single named import; there is no configuration, initialization, or class instantiation anywhere in the package. The README explicitly invites copy-pasting individual type definitions instead of adding the dependency, which signals a design philosophy prioritizing zero lock-in over API surface control.
Used by 32 apps in this directory
likec4
Developer Tools · Devops
Define your software architecture as code and get always up-to-date, interactive C4 diagrams generated automatically from a DSL.
LobeHub
AI Assistants · Automation · Productivity
Your Chief Agent Operator — build, schedule, and collaborate with an entire AI team in one self-hostable workspace.
Mastodon
Social Media
Run your own federated social network on the open ActivityPub standard with no ads, no algorithms, and no corporate control over your community.
Mastra Code
AI Code Assistants
"A coding agent that never compacts" — a terminal-based AI coding agent built on the Mastra framework, with Observational Memory instead of context compaction, multi-model support, and OAuth login for Claude Max or ChatGPT Plus.
Mathesar
Databases
Spreadsheet-like interface for your PostgreSQL database — self-hosted, no SQL required, native Postgres access control.
nango
Authentication · Automation · Developer Tools
Build product integrations with AI using 800+ APIs — auth, proxy, and TypeScript functions on production-grade infrastructure.
Onlook
AI Design Tools · Design Tools
An open-source, AI-first visual editor that lets designers and developers build, style, and deploy React apps directly in code — no handoff required.
openclaude
AI Agents · AI Code Assistants
Run Claude Code workflows against any LLM — OpenAI, Gemini, Ollama, and 200+ backends — from a single terminal-first CLI.
PeerTube
Social Media
A federated, ActivityPub-based video hosting platform built by Framasoft — self-hostable instances interconnect into a network with no vendor lock-in, P2P-assisted streaming, and no ads.