ページ内ナビ
概要
Type-festは、TypeScriptの型システムだけで使う汎用utility type集です。Except、Merge、ReadonlyDeep、Tagged、Getなど、objectやunionを組み替える型をpackageからimportし、applicationやlibraryの型定義を再利用しやすくします。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
object・union・deep変換向けのutility typeをまとめて使う
v5.10.0のREADMEはExcept、Merge、MergeDeep、PartialDeep、ReadonlyDeep、RequireExactlyOneなど、多数の型変換を用途別に公開しています。標準Utility Typeだけでは表現しにくい型操作を自前で繰り返し実装せずに済みます。
出典:[1]
Tagged・Exact・GetなどAPI設計向けの型も選べる
Taggedでbrandに近い型を作る、Exactで余分なpropertyを制限する、Getでnested propertyの型をkey pathから取得するなど、domain modelや公開APIの型を組み立てるutilityも含まれます。
出典:[1]
向いている用途
frontendやlibraryで複雑な型変換を共通部品にしたい場合に向く
API response、form model、設定object、公開libraryの型などで、deep optional化、keyの選択、排他的property、brand表現を複数箇所から再利用したいTypeScript codebaseに適します。
出典:[1]
導入前の確認
v5.10.0はTypeScript 5.9以上・ESM・strict設定を前提にする
READMEはTypeScript >=5.9、ESM、strict: trueを必須条件として示しています。package metadataはNode.js >=20をengineとして宣言するため、古いtoolchainへ追加する場合は先にbuild環境を確認してください。
参考にした公式資料
- [1]Type-fest v5.10.0 README(2026-10-05)
- [2]Type-fest v5.10.0 package metadata(2026-10-05)
- [3]Type-fest v5.10.0 release(2026-10-05)
- [4]Type-fest MIT license(2026-10-05)
- [5]Type-fest CC0 license(2026-10-05)
編集部からの補足
v5.10.0はTypeScript 5.9以上・ESM・strict設定を前提にします。型だけを提供するlibraryなので、外部入力のruntime validationが必要な箇所ではZod等のschema libraryとは役割を分けてください。
3ステップで試す
- 1
Type-fest 5.10.0とTypeScript 5.9.2を導入する
READMEの要件に合わせ、ESMの一時projectへType-festとTypeScript 5.9系を固定して導入します。
demo=$(mktemp -d "${TMPDIR:-/tmp}/type-fest.XXXXXX") && cd "$demo" && npm init -y >/dev/null && npm pkg set type=module && npm install --save-exact type-fest@5.10.0 && npm install --save-exact --save-dev typescript@5.9.2 - 2
strict設定とExceptを使う確認用ファイルを作る
READMEが求めるstrict設定を有効にし、代表的なutility typeであるExceptを型だけimportして使います。
printf "%s\n" '{"compilerOptions":{"strict":true,"noEmit":true,"module":"NodeNext","moduleResolution":"NodeNext","target":"ES2022"}}' > tsconfig.json && printf "%s\n" "import type {Except} from 'type-fest';" "type User = {id: string; secret: string};" "const publicUser: Except<User, 'secret'> = {id: '1'};" "void publicUser;" > index.ts - 3
TypeScript compilerで型検査する
runtimeを起動せず型検査だけを実行し、Type-festの型定義がprojectで解決されることを確認します。
npx tsc
成長
成長の推移 · 直近30日
17,433 Stars
推移データを蓄積中です。
開発アクティビティ
直近90日・週次
- Commit(直近30日)
- 7
- Open PR
- 48
開発アクティビティを蓄積中です。
Built with
カテゴリとタグ
カテゴリ
GitHubデータ
GitHubのデータGitHubの詳細データを見る
GitHub Topics
- typescript-definitions
- typescript
- types
- utilities
- npm-package
- Stars
- 17,433
- Forks
- 744
- Watchers
- 57
- Open Issues
- 177
- Contributors
- 213
- 所有者種別
- User
- 主要言語
- TypeScript
- ライセンス
- CC0-1.0
- リポジトリ最終更新
- 2026/09/18
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- Linaria12,350 Stars
共通タグ 3件 · 共通カテゴリ 1件 · 同じ言語
CSS-in-JSのauthoring experienceを保ちつつ、styleをbuild時にstatic CSSへextractする
TypeScript - Valibot9,027 Stars
共通タグ 3件 · 共通カテゴリ 1件 · 同じ言語
小さな関数を組み合わせ、TypeScript型推論と実行時のスキーマ検証を両立する
TypeScript - openapi-typescript8,391 Stars
共通タグ 3件 · 共通カテゴリ 1件 · 同じ言語
OpenAPI 3.0/3.1の定義から実行時コードを増やさずTypeScript型を生成する
TypeScript - PurgeCSS8,050 Stars
共通タグ 3件 · 共通カテゴリ 1件 · 同じ言語
content fileをscanして実際に参照されるselectorだけを残し、unused CSSを削減する
TypeScript - ts-toolbelt7,150 Stars
共通タグ 3件 · 共通カテゴリ 1件 · 同じ言語
Object・Union・Functionなど200超の型utilityで高度な型計算を再利用する
TypeScript - Superstruct7,127 Stars
共通タグ 3件 · 共通カテゴリ 1件 · 同じ言語
小さなstructを組み合わせ、JavaScriptやTypeScriptの入力値を実行時に検証する
TypeScript
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。