Skip to content
A collection of essential TypeScript types
Branch: master
Clone or download
Latest commit a8ae3db May 15, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Upgrade `tsd` dev dependency Mar 20, 2019
media Init Mar 13, 2019
source Add `esnext` lib reference for BigInt (#37) May 15, 2019
test-d Upgrade dev dependencies May 12, 2019
.editorconfig Init Mar 13, 2019
.gitattributes Init Mar 13, 2019
.gitignore Init Mar 13, 2019
.npmrc Init Mar 13, 2019
.travis.yml Add Node.js 12 to testing (#32) Apr 26, 2019
index.d.ts Add `ReadonlyDeep` type (#34) May 12, 2019
license Init Mar 13, 2019
license-cc0 Init Mar 13, 2019
package.json 0.5.1 May 15, 2019
readme.md Add `ReadonlyDeep` type (#34) May 12, 2019
tsconfig.json Init Mar 13, 2019

readme.md



type-fest

A collection of essential TypeScript types



Build Status

Many of the types here should have been built-in. You can help by suggesting some of them to the TypeScript project.

Either add this package as a dependency or copy-paste the needed types. No credit required. 👌

PR welcome for additional commonly needed types and docs improvements. Read the contributing guidelines first.

Install

$ npm install type-fest

Usage

import {Omit} from 'type-fest';

type Foo = {
	unicorn: string;
	rainbow: boolean;
};

type FooWithoutRainbow = Omit<Foo, 'rainbow'>;
//=> {unicorn: string}

API

Click the type names for complete docs.

Basic

Utilities

  • Omit - Create a type from an object type without certain keys.
  • Mutable - Convert an object with readonly properties into a mutable object. Inverse of Readonly<T>.
  • Merge - Merge two types into a new type. Keys of the second type overrides keys of the first type.
  • MergeExclusive - Create a type that has mutually exclusive properties.
  • RequireAtLeastOne - Create a type that requires at least one of the given properties.
  • ReadonlyDeep - Create a deeply immutable version of a object/Map/Set/Array type.
  • LiteralUnion - Create a union type by combining primitive types and literal types without sacrificing auto-completion in IDEs for the literal type part of the union. Workaround for Microsoft/TypeScript#29729.

Miscellaneous

Declined types

If we decline a type addition, we will make sure to document the better solution here.

  • Diff and Spread - The PR author didn't provide any real-world use-cases and the PR went stale. If you think this type is useful, provide some real-world use-cases and we might reconsider.

Tips

Built-in types

There are many advanced types most users don't know about.

You can find some examples in the TypeScript docs.

Maintainers

License

(MIT OR CC0-1.0)

You can’t perform that action at this time.