Repolode
samchon

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. 1

    typia と ttsc/TypeScript ツールチェーンをインストールする

    npm i typia npm i -D ttsc typescript
  2. 2

    ttsc でプロジェクトをビルドする(標準の tsc ではトランスフォームが適用されません)

    npx ttsc
  3. 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 の数値は毎日更新されます。

関連プロジェクト

1つの.sk irファイルから、TypeScript、Python、Java、Go、C++など向けの型安全なデータモデルとRPCコードを生成する宣言的スキーマ言語。

317+1 今週10TypeScriptMIT活発にメンテナンス更新 11 日前