fontcolor_theme

ランタイム型

TypeScript におけるランタイム型情報は、これまで利用できなかった、または回避策を必要とした新しいワークフローや機能を解放します。現代の開発プロセスは、GraphQL、バリデータ、ORM、ProtoBuf のようなエンコーダーといったツールのために、型やスキーマを宣言することに大きく依存しています。これらのツールでは、ProtoBuf や GraphQL が独自の宣言言語を持っていたり、バリデータが独自のスキーマ API や JSON-Schema を使用していたりと、ユースケースに特化した新しい言語を学ぶ必要がある場合があります。

TypeScript は複雑な構造を表現できるほど強力になっており、GraphQL、ProtoBuf、JSON-Schema のような宣言フォーマットを完全に置き換えることさえ可能です。ランタイム型システムがあれば、コードジェネレーターや「Zod」のようなランタイムの JavaScript 型宣言ライブラリを一切使わずに、これらのツールのユースケースをカバーできます。Deepkit ライブラリは、ランタイム型情報を提供し、効率的で互換性のあるソリューションの開発を容易にすることを目指しています。

Deepkit は、ランタイムで型情報を読み取る能力に基づいて構築されており、効率のために可能な限り多くの TypeScript の型情報を利用します。ランタイム型システムにより、クラスのプロパティ、関数のパラメータ、返り値の型といった動的な型を読み取り、計算できます。Deepkit は TypeScript のコンパイルプロセスにフックし、カスタムのバイトコードと仮想マシンを用いて、すべての型情報が生成された JavaScript に埋め込まれることを保証し、開発者がプログラム的に型情報へアクセスできるようにします。

Deepkit を使えば、開発者は既存の TypeScript の型をランタイムでのバリデーション、シリアライズなどに活用でき、開発プロセスを簡素化し、作業をより効率的にできます。

English中文 (Chinese)한국어 (Korean)日本語 (Japanese)Deutsch (German)