type-fest README

The project's README from github.com/sindresorhus/type-fest. As one markdown file: README.md.



type-fest

A collection of essential TypeScript types




Sindre Sorhus' open source work is supported by the community

Special thanks to:

nitric logo
Effortless backends with infrastructure from code
An open-source framework that supports any programming language, cloud provider, or deployment automation tool.





npm dependents npm downloads

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.

Help wanted with reviewing proposals and pull requests.

Install

npm install type-fest

Requires TypeScript >=5.9, ESM, and {strict: true} in your tsconfig.

[!NOTE] This readme shows the current development version. For docs about the latest version, see the npm page.

You may also like my ts-extras package which provides runtime functions for some of these types.

Usage

import type {Except} from 'type-fest';

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

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

API

Click the type names for complete docs.

Basic

Utilities

Type Guard

type-fest (sindresorhus/type-fest)

Searching Database…

17.5K ·GitHub
Что это такое?type-fest — это набор основных типов для TypeScript — вспомогательных типов, которые, по мнению автора, должны были быть встроены в язык. Они покрывают объекты, объединения, строки, массивы, кортежи и функции.
Это библиотека для рантайма или просто описания типов?Только типы — описания, которые компилятор использует во время сборки; в вашем приложении не выполняется ни строчки кода. Для функций рантайма автор выпускает отдельный пакет-компаньон, ts-extras.
Как добавить его в проект?Установите как зависимость командой npm install type-fest и импортируйте нужные типы — а можно и вовсе обойтись без пакета и просто скопировать себе только те описания, которые нужны.
Проекту нужна какая-то особая настройка TypeScript?Да — TypeScript 5.9 или новее, ESM и строгий режим ({strict: true}) в tsconfig; более старые проекты и проекты без строгого режима его не примут. Учтите также, что README на GitHub описывает невыпущенную dev-версию, поэтому документация по релизам лежит на npm.
Какие типы туда входят?Больше сотни, в трёх группах: Basic (Primitive, Class, TypedArray), Utilities (Except, Merge, LiteralUnion, PartialDeep, Get...) и Type Guards (If, IsLiteral, IsNumericLiteral).
Какие типы стоит узнать в первую очередь?Except убирает ключи из типа объекта, Merge объединяет два типа, LiteralUnion сохраняет автодополнение в IDE для литеральных объединений, а Get достаёт вложенное свойство — как .get() в Lodash.
Если я скопирую типы в свой код, нужно ли указывать авторство?Нет — type-fest распространяется по лицензии CC0-1.0, то есть фактически как общественное достояние, и в README прямо сказано, что копирование нужных типов не требует указания авторства.
Он поспевает за новыми версиями TypeScript?Скорее всего да: в CI репозитория есть canary-workflow, который тестирует невыпущенные сборки TypeScript, а README призывает предлагать типы, достойные самого языка, напрямую в проект TypeScript.
Size
4.2 MB
Stars
17.5K
Age
7y
Commits · 90 Days