OSS探訪GitHubでログイン

Object・Union・Functionなど200超の型utilityで高度な型計算を再利用する

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
7,150
主要言語
TypeScript
ライセンス
Apache-2.0
リポジトリ最終更新
2025/06/02
ページ内ナビ

概要

ts-toolbeltは、mapped type・conditional type・recursive typeを使った200超のTypeScript utilityをまとめたlibraryです。Object、List、Union、Functionなどのcategoryから型関数を選び、merge、optional化、path操作など複雑な型計算を共通部品として利用できます。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

Object・List・Union・Functionなどcategory別に型utilityを選ぶ

READMEは200超のutilityを掲げ、Object、List、Union、Function、String、NumberなどTypeScriptの主要概念ごとにAPIを整理しています。必要な型操作をcategoryから探して再利用できます。

出典:[2]

Merge・Optional・Path操作など複雑な型計算を組み合わせる

ObjectのMergeやOptional、pathを扱うutility、UnionやFunction向けutilityなどを使い、mapped typeやconditional typeを毎回手書きせずに型を組み立てられます。

出典:[2]

用途に合わせて明示名・短縮名・portable importを選べる

READMEはObjectなどの明示的なimport、Oなどの短縮import、default importを案内しています。codebaseの読みやすさや既存styleに合わせて入口を選べます。

出典:[2]

向いている用途

frontendやlibraryで複雑なgeneric型を繰り返し扱う場合に向く

nested objectの型変換、union操作、関数signatureの加工などを複数moduleで共有し、型levelの実装をlibrary化したいTypeScript codebaseに適します。

出典:[2]

導入前の確認

READMEのdocumented prerequisiteはTypeScript ^4.1.0のままである

READMEはprerequisiteとしてTypeScript ^4.1.0を示し、strictNullChecks: trueを強く推奨しています。現在のTypeScript compilerで採用する場合は、target projectのversionで型検査を通して互換性を確認してください。

出典:[2]

package 9.6.0の更新状態とtarget compilerを導入前に確認する

repositoryのpackage metadataはversion 9.6.0で、GitHub repositoryの最終pushは2025年6月です。新しいTypeScript compilerへ組み込む場合は、必要なutilityだけで小さなtypecheckを行ってから広く依存させるのが安全です。

出典:[3][1]

参考にした公式資料

  1. [1]millsp/ts-toolbelt repository metadata(2026-10-05)
  2. [2]ts-toolbelt README at reviewed commit(2026-10-05)
  3. [3]ts-toolbelt package metadata at reviewed commit(2026-10-05)
  4. [4]ts-toolbelt Apache-2.0 license(2026-10-05)
編集部からの補足

READMEのprerequisiteはTypeScript ^4.1.0のままで、repositoryの最終pushは2025年6月です。現在のTypeScript compilerへ導入する場合は、必要なutilityをtarget versionでtypecheckしてから共通dependencyにするのが安全です。

3ステップで試す

  1. 1

    ts-toolbelt 9.6.0とREADME要件内のTypeScriptを導入する

    READMEのTypeScript ^4.1.0要件に収まるcompilerとts-toolbelt 9.6.0を一時projectへ固定して導入します。

    demo=$(mktemp -d "${TMPDIR:-/tmp}/ts-toolbelt.XXXXXX") && cd "$demo" && npm init -y >/dev/null && npm install --save-exact ts-toolbelt@9.6.0 && npm install --save-exact --save-dev typescript@4.9.5
  2. 2

    strict設定とObject.Mergeを使う確認用ファイルを作る

    READMEが強く推奨するstrictNullChecksを含む設定で、代表的なObject.Merge utilityを利用します。

    printf "%s\n" '{"compilerOptions":{"strict":true,"strictNullChecks":true,"noEmit":true,"lib":["ES2015"]}}' > tsconfig.json && printf "%s\n" "import {O} from 'ts-toolbelt';" "type User = O.Merge<{name: string}, {age?: number}>;" "const user: User = {name: 'Ada'};" "void user;" > index.ts
  3. 3

    TypeScript compilerで型検査する

    READMEに沿ったcompiler範囲で型検査を実行し、ts-toolbeltの型utilityが解決されることを確認します。

    npx tsc
公式READMEで確認

成長

成長の推移 · 直近30日

7,150 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
0
Open PR
17

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

カテゴリ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • typescript
  • types
  • typescript-library
  • type-checking
  • dynamic-types
  • type-utilities
  • type-safety
  • utility
  • safety
Stars
7,150
Forks
152
Watchers
29
Open Issues
66
Contributors
14
所有者種別
User
主要言語
TypeScript
ライセンス
Apache-2.0
リポジトリ最終更新
2025/06/02

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?