TypeScriptとReScript向けのスキーマライブラリ。1つの宣言からデータを検証・解析・エンコードでき、JSON、フォームデータ、Protobufなどに対応します。
samchon/typia
純粋なTypeScript型を、実行時バリデーター、JSONシリアライザー、Protocol Bufferコーデック、ランダムデータ生成器にコンパイルするTypeScriptトランスフォーマー。
代替できる製品:class-validator
- スター
- 5,962
- フォーク
- 233
- 未解決の Issue
- 5
- 最終コミット
- 昨日
これは何?
typiaは、ビルド時にTypeScriptの型を実行時関数に変換します。typia.is<T>()やtypia.assert<T>()のような型を記述すると、トランスフォーマーがコンパイル時にTを解析し、専用のチェッカーを生成します。そのため、別途スキーマを定義したり、実行時リフレクションを使ったりする必要はありません。
ライブラリは複数の領域をカバーしています。実行時バリデーター(is、assert、validate)、スキーマ生成と高速なstringify・parse関数を備えた拡張JSON機能、encode・decodeに対応したProtocol Bufferメッセージ生成、ランダムデータ生成器を利用できます。また、クラス型からツールスキーマを構築し、モデルの出力を検証またはパースするLLMの関数呼び出しモジュールも含まれています。
通常のtsc、ts-node、tsxではトランスフォームが適用されないため、typiaの利用にはそれらではなくttscツールチェーンが必要です。Vite、Next.js、Webpack、Rollup、esbuild向けには、@ttsc/unpluginを介したバンドラー連携も利用できます。
主な機能
- 01スキーマファイルを用意せずに、ビルド時に純粋なTypeScript型から型チェッカーを生成します。
- 02実行時バリデーション用のis、assert、validate関数を提供します。
- 03JSON Schemaを生成し、型安全なstringify・parse関数を提供します。
- 04TypeScriptの型からProtocol Bufferメッセージをencode・decodeします。
- 05LLMツール向けの関数呼び出しスキーマを構築し、モデルの出力を検証します。
- 06TypeScriptの型をもとにしたランダムデータ生成器を備えています。
ユースケース
- 別途スキーマを記述せずに、TypeScriptバックエンドでAPIリクエストボディを検証する。
- 既知の型に対して高速なJSONシリアライズを行う。
- TypeScriptのクラスからLLMの関数呼び出し用ツール定義を作成する。
- 既存の型からテスト用フィクスチャを生成する。
クイックスタート
- 1
typia と ttsc/TypeScript ツールチェーンをインストールする
npm i typia npm i -D ttsc typescript - 2
ttsc でプロジェクトをビルドする(標準の tsc ではトランスフォームが適用されません)
npx ttsc - 3
ttsx でスクリプトを直接実行する
npx ttsx src/index.ts
使う前に知っておきたいこと
- ttsc ツールチェーンが必要です。標準の tsc、ts-node、tsx ではトランスフォームを適用できません。
- バンドラーで使用するには、別途 @ttsc/unplugin パッケージが必要です。
収録されている特集
トピック
よくある質問
- typia とは?
- 純粋なTypeScript型を、実行時バリデーター、JSONシリアライザー、Protocol Bufferコーデック、ランダムデータ生成器にコンパイルするTypeScriptトランスフォーマー。 typiaは、ビルド時にTypeScriptの型を実行時関数に変換します。typia.is<T>()やtypia.assert<T>()のような型を記述すると、トランスフォーマーがコンパイル時にTを解析し、専用のチェッカーを生成します。そのため、別途スキーマを定義したり、実行時リフレクションを使ったりする必要はありません。
- typia は無料で使えますか?ライセンスは?
- typia は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- typia は今もメンテナンスされていますか?
- 活発にメンテナンス中。typia の最終コミットは 2026年11月6日 です。
- typia は何に使えますか?
- 別途スキーマを記述せずに、TypeScriptバックエンドでAPIリクエストボディを検証する。 既知の型に対して高速なJSONシリアライズを行う。 TypeScriptのクラスからLLMの関数呼び出し用ツール定義を作成する。 既存の型からテスト用フィクスチャを生成する。
- typia のインストール方法は?
- typia と ttsc/TypeScript ツールチェーンをインストールする: npm i typia npm i -D ttsc typescript ttsc でプロジェクトをビルドする(標準の tsc ではトランスフォームが適用されません): npx ttsc ttsx でスクリプトを直接実行する: npx ttsx src/index.ts
- typia はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/samchon/typia
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
標準の型アノテーションを使ってJSON、MessagePack、YAML、TOMLをエンコード・デコードする、高速なPythonシリアライズ・バリデーションライブラリ。
NestJS向けのTypeScriptヘルパーライブラリ。コントローラーから型付きSDK、Swaggerドキュメント、E2Eテスト、LLMの関数呼び出しエージェントを生成します。
1つの.sk irファイルから、TypeScript、Python、Java、Go、C++など向けの型安全なデータモデルとRPCコードを生成する宣言的スキーマ言語。
JSON、JSON Schema、TypeScript、GraphQLクエリから、さまざまな言語の型付きモデルとシリアライザーを生成します。
型ヒントを使ってデータを解析・検証する、Rustベースのコアを備えたPythonデータ検証ライブラリ。