awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
piotrwitek avatar

piotrwitek/utility-types

0
View on GitHub↗
5,759 stars·235 forks·TypeScript·MIT·29 views

Utility Types

This is a TypeScript utility type library providing advanced type aliases and mapped types for complex object and union transformations. It implements specialized tools for creating branded nominal types, extracting type metadata, and performing set operations on union types.

The project distinguishes itself through a toolkit for recursive object transformations, allowing for the application of property constraints like read-only or optional status across deeply nested structures. It also provides a system for computing intersections, differences, and complements between union types to simulate mathematical set logic.

The library covers a broad range of type system capabilities, including object property filtering, shape comparison, and the extraction of class constructors and promise resolution types. It additionally includes utilities for value validation, such as detecting falsy or nullish values and identifying primitive types.

Features

  • Recursive Mapped Types - Provides a toolkit for recursively applying property constraints across deeply nested object structures.
  • Recursive Property Transformations - Enables recursive modification of properties in deep object structures to change mutability or requirement status.
  • Object Type Transformations - Recursively applies property constraints like read-only or required status to nested object structures.
  • Recursive Object Type Transformers - Provides a toolkit for applying property constraints like read-only or optional status to deeply nested object structures.
  • Conditional Types - Provides type-level decision systems to select types based on evaluated conditions.
  • Static Type Metadata Extractors - Retrieves constructor, return, and promise resolution types from classes and functions.
  • Union Type Transformations - Provides utilities for manipulating, filtering, and aggregating properties across union types.
  • Union Member Filtering - Includes utilities for filtering and transforming individual members of union types.
  • Union Set Operations - Computes mathematical set-like operations such as differences and intersections between union types.
  • TypeScript Advanced Type Features - Implements advanced TypeScript features including generics, conditional types, and mapped types for strong type safety.
  • Mapped Type Transformations - Implements mapped type transformations for iterating over keys to reconstruct type structures.
  • Type Intersection and Merging - Provides capabilities for combining multiple type definitions into a single composite structure.
  • Branded Types - Implements branded types to distinguish between identical object structures using unique labels.
  • Type-Level - Changes properties or nested structures to be either read-only or mutable via utility types.
  • Asynchronous Type Extraction - Extracts the resolution type of a Promise at the type level.
  • Constructor Extraction - Retrieves the constructor type of a class by analyzing the type of its instances.
  • Object Key Extractors - Retrieves a union of object keys based on criteria like value type or mutability.
  • Object Property Transformers - Provides utilities for filtering specific properties from objects at the type level.
  • Shape Comparisons - Computes intersections and differences between two object types to identify shared or unique properties.
  • Template Literal Types - Uses template literal types to generate and transform property keys at the type level.
  • Union to Intersection Converters - Transforms a union type into an intersection type composed of all its constituent members.
  • Element Type Extraction - Derives a union of all value types contained within an object, tuple, or array.
  • Type Utilities - Collection of utility types for common development patterns.

Star history

Star history chart for piotrwitek/utility-typesStar history chart for piotrwitek/utility-types

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with Utility Types

These projects share indexed features with Utility Types. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • millsp/ts-toolbeltmillsp avatar

    millsp/ts-toolbelt

    7,145View on GitHub↗

    ts-toolbelt is a collection of specialized utilities for manipulating and validating TypeScript types. It provides a toolkit for performing complex transformations on objects, unions, and functions to enforce strict data consistency at compile time. The library features dedicated transformers for function types, including utilities for currying, composition, and signature extraction. It also includes an object type manipulator for deep merging, patching, and reshaping complex structures. The capability surface extends to literal string processing, type-level arithmetic, and tuple operations.

    TypeScriptdynamic-typessafetytype-checking
    View on GitHub↗7,145
  • sindresorhus/type-festsindresorhus avatar

    sindresorhus/type-fest

    17,233View on GitHub↗

    type-fest is a library of reusable utility types for performing complex transformations and validations on objects, arrays, strings, and numeric ranges in TypeScript. It provides a collection of type definitions designed to handle advanced structural changes and constraints. The project distinguishes itself by offering specialized logic for string literal processing, such as casing transformations and pattern-based modifications, and type-level arithmetic for calculating numeric ranges and absolute values. It also includes utilities for enforcing deep immutability, ensuring union mutual exclu

    TypeScriptnpm-packagetypestypescript
    View on GitHub↗17,233
  • ts-essentials/ts-essentialsts-essentials avatar

    ts-essentials/ts-essentials

    4,068View on GitHub↗

    ts-essentials is a comprehensive toolkit of utility types and libraries for TypeScript, providing advanced primitives for recursive structural transformations, runtime assertions, and type guards. It serves as a utility library for performing complex type-level programming to ensure stronger type safety and reduce boilerplate. The project distinguishes itself through a specialized set of tools for deep object manipulation, such as recursively applying read-only or optional modifiers across nested hierarchies. It also provides a dedicated set of strict type constraints to ensure data structure

    TypeScriptessentialstoolboxtype-level-programming
    View on GitHub↗4,068
  • microsoft/typescript-handbookmicrosoft avatar

    microsoft/TypeScript-Handbook

    4,855View on GitHub↗

    This project is a comprehensive guide and educational resource for the TypeScript language. It covers the fundamental principles of the language, including its structural type system, static type analysis, and the process of transpiling typed source files into JavaScript. The material details how to model complex data and reusable type logic using generics, conditional types, and mapped types. It also explains the use of declaration files to provide type safety for external JavaScript libraries and the integration of type checking into existing JavaScript projects via JSDoc annotations. The

    JavaScriptdocumentationlearntypescript
    View on GitHub↗4,855
Compare all 30 related projects→

Frequently asked questions

What does piotrwitek/utility-types do?

This is a TypeScript utility type library providing advanced type aliases and mapped types for complex object and union transformations. It implements specialized tools for creating branded nominal types, extracting type metadata, and performing set operations on union types.

What are the main features of piotrwitek/utility-types?

The main features of piotrwitek/utility-types are: Recursive Mapped Types, Recursive Property Transformations, Object Type Transformations, Recursive Object Type Transformers, Conditional Types, Static Type Metadata Extractors, Union Type Transformations, Union Member Filtering.

Which projects share features with piotrwitek/utility-types?

Projects with overlapping indexed features include: millsp/ts-toolbelt — ts-toolbelt is a collection of specialized utilities for manipulating and validating TypeScript types. It provides a… sindresorhus/type-fest — type-fest is a library of reusable utility types for performing complex transformations and validations on objects,… ts-essentials/ts-essentials — ts-essentials is a comprehensive toolkit of utility types and libraries for TypeScript, providing advanced primitives… microsoft/typescript-handbook — This project is a comprehensive guide and educational resource for the TypeScript language. It covers the fundamental… gvergnaud/hotscript — Hotscript is a comprehensive suite of composable utilities designed for performing structural transformations and… arktypeio/arktype — Arktype is a TypeScript runtime validation library and schema orchestrator. It synchronizes TypeScript types with…