ページ内ナビ
概要
Typiaは、TypeScriptの型情報をbuild時に解析し、is・assert・validateなどのruntime functionへ変換するtransformer libraryです。追加schemaを手書きせず、JSON処理、random data、Protocol Buffer、LLM function calling向けschema生成などにも同じ型情報を利用できます。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
TypeScript型から専用runtime validatorをbuild時に生成する
typia.is<T>()やcreateIs<T>()のような呼び出しをcompile時に解析し、対象型専用のJavaScript validatorへ変換します。runtime reflectionではなく生成済みfunctionを実行する設計です。
出典:[1]
is・assert・validateで検証結果の扱いを選べる
booleanを返すis、不正値でerrorを投げるassert、詳細なvalidation resultを返すvalidateなどが用意され、API境界ごとにerror handlingを選べます。
出典:[1]
同じ型情報からJSON・random・Protobuf・LLM向け機能へ展開する
JSON Schemaや安全なparse/stringify、random generator、Protocol Buffer encode/decode、LLM function calling向けschemaなどをTypeScript型から生成するAPIも提供します。
出典:[1]
向いている用途
schema重複を避けながらruntime検証を高速化したいTypeScript projectに向く
applicationのTypeScript型を正本として、validation用schemaやserializer定義の重複を減らしたいprojectに適します。特に大量のvalidationやserializationを行うbackend・API層で検討しやすい構成です。
出典:[1]
導入前の確認
ttsc/ttsxまたはbundler pluginをbuild chainへ組み込む必要がある
READMEはstock tsc、ts-node、tsxではtransformが動かないと明記しています。CLIではttsc/ttsx、Vite・Next.js・Webpack・Rollup・esbuild等では@ttsc/unpluginを利用するため、既存build pipelineへの変更が必要です。
参考にした公式資料
- [1]Typia v15.1.0 README(2026-10-05)
- [2]Typia v15.1.0 package metadata(2026-10-05)
- [3]Typia v15.1.0 workspace toolchain catalog(2026-10-05)
- [4]Typia v15.1.0 release(2026-10-05)
- [5]Typia MIT license(2026-10-05)
編集部からの補足
Typiaは通常のruntime schema libraryではなく、TypeScript compile時に型情報から専用関数を生成するtransformerです。READMEが明記するとおりstock tsc・ts-node・tsxではtransformが適用されないため、ttsc/ttsxまたはbundler向け@ttsc/unpluginをbuild chainへ組み込む必要があります。
3ステップで試す
- 1
Typia 15.1.0と対応toolchainを導入する
READMEで必須とされるttsc toolchainを、15.1.0 workspaceで使われているversionへ揃えて導入します。
demo=$(mktemp -d "${TMPDIR:-/tmp}/typia.XXXXXX") && cd "$demo" && npm init -y >/dev/null && npm install --save-exact typia@15.1.0 && npm install --save-exact --save-dev ttsc@0.30.4 typescript@7.0.2 - 2
TypeScript型からvalidatorを生成するscriptを作る
追加schemaを作らず、純粋なTypeScript型から
createIs<User>()を生成する最小例を用意します。mkdir -p src && printf "%s\n" "import typia from 'typia';" "type User = {id: number; name: string};" "const isUser = typia.createIs<User>();" "if (!isUser({id: 1, name: 'Ada'})) process.exit(1);" "if (isUser({id: '1', name: 'Ada'})) process.exit(1);" "console.log('validated');" > src/index.ts - 3
ttsxでtransformを適用して実行する
stock
tsxではなくREADME指定のttsxを使い、build-time transformされたvalidatorが正しい値だけを通すことを確認します。npx ttsx src/index.ts
成長
成長の推移 · 直近30日
5,931 Stars
推移データを蓄積中です。
開発アクティビティ
直近90日・週次
- Commit(直近30日)
- 19
- Open PR
- 0
開発アクティビティを蓄積中です。
Built with
カテゴリとタグ
GitHubデータ
GitHubのデータGitHubの詳細データを見る
GitHub Topics
- json
- stringify
- typescript
- fast
- ajv
- checker
- generator
- runtime
- transform
- validator
- type
- random
- Stars
- 5,931
- Forks
- 226
- Watchers
- 17
- Open Issues
- 2
- Contributors
- 96
- 所有者種別
- User
- 主要言語
- TypeScript
- ライセンス
- MIT
- リポジトリ最終更新
- 2026/10/02
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- Superstruct7,127 Stars
共通タグ 4件 · 共通カテゴリ 2件 · 同じ言語
小さなstructを組み合わせ、JavaScriptやTypeScriptの入力値を実行時に検証する
TypeScript - io-ts6,814 Stars
共通タグ 4件 · 共通カテゴリ 2件 · 同じ言語
codecで未知の値をdecode・encodeし、同じ定義からTypeScript型を推論する
TypeScript - Runtypes2,699 Stars
共通タグ 4件 · 共通カテゴリ 2件 · 同じ言語
未知の値をcomposableなruntime validatorで検証し、同じ定義からTypeScript型を推論する
TypeScript - Ky17,104 Stars
共通タグ 4件 · 共通カテゴリ 1件 · 同じ言語
Fetch APIを薄く拡張し、retry・timeout・hook・JSON処理を短いAPIで扱う
TypeScript - ofetch5,360 Stars
共通タグ 4件 · 共通カテゴリ 1件 · 同じ言語
Node・browser・workerで同じAPIを使い、fetchへJSON解析・retry・timeout・interceptorを加える
TypeScript - Insomnia40,037 Stars
共通タグ 3件 · 共通カテゴリ 2件 · 同じ言語
APIのdesign・request・test・CI workflowをdesktop clientへまとめる
TypeScript
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。