Skip to content
A collection of essential TypeScript types
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Improve readme and add contribution guidelines Mar 14, 2019
media Init Mar 13, 2019
test Add `RequireAtLeastOne` type (#1) Mar 18, 2019
.editorconfig Init Mar 13, 2019
.gitattributes Init Mar 13, 2019
.gitignore Init Mar 13, 2019
.npmrc Init Mar 13, 2019
.travis.yml Init Mar 13, 2019
index.d.ts Add `RequireAtLeastOne` type (#1) Mar 18, 2019
index.test-d.ts Add `RequireAtLeastOne` type (#1) Mar 18, 2019
license-cc0 Init Mar 13, 2019
package.json 0.3.0 Mar 18, 2019
tsconfig.json Init Mar 13, 2019


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.


$ npm install type-fest


import {Omit} from 'type-fest';

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

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


See the types file for complete docs.


  • Primitive - Matches any primitive value.
  • Class - Matches a class constructor.
  • TypedArray - Matches any typed array, like Uint8Array or Float64Array.
  • JsonObject - Matches a JSON object.
  • JsonArray - Matches a JSON array.
  • JsonValue - Matches any valid JSON value.
  • ObservableLike - Matches a value that is like an Observable.


  • Omit - Create a type from an object type without certain keys.
  • 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.
  • LiteralUnion - Allows creating 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.


Declined types

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


Built-in types

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

You can find some examples in the TypeScript docs.



(MIT OR CC0-1.0)

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.