Typia
export function is<T>(input: unknown): input is T;
export function assert<T>(input: unknown): T;
export function assertGuard<T>(input: unknown): asserts input is T;
export function validate<T>(input: unknown): IValidation<T>;
export namespace json {
export function application<T>(): IJsonApplication;
export function assertParse<T>(input: string): T;
export function assertStringify<T>(input: T): string;
}
export namespace llm {
export function application<App, Model>(): ILlmApplication<Model>;
export function parameters<P, Moodel>(): ILlmSchema.IParameters<Model>;
export function schema<T, Model>(): ILlmSchema<Model>;
}
export namespace protobuf {
export function message<T>(): string;
export function assertDecode<T>(buffer: Uint8Array): T;
export function assertEncode<T>(input: T): Uint8Array;
}
export function random<T>(g?: Partial<IRandomGenerator>): T;
typia
is a transformer library supporting below features:
- Super-fast Runtime Validators
- Enhanced JSON schema and serde functions
- LLM function calling schema and structured output
- Protocol Buffer encoder and decoder
- Random data generator
[!NOTE]
- Only one line required, with pure TypeScript type
- Runtime validator is 20,000x faster than
class-validator
- JSON serialization is 200x faster than
class-transformer
Transformation
If you call typia
function, it would be compiled like below.
This is the key concept of typia
, transforming TypeScript type to a runtime function. The typia.is<T>()
function is transformed to a dedicated type checker by analyzing the target type T
in the compilation level.
This feature enables developers to ensure type safety in their applications, leveraging TypeScript's static typing while also providing runtime validation. Instead of defining additional schemas, you can simply utilize the pure TypeScript type itself.
import typia, { tags } from "typia";
export const checkString = typia.createIs<string>();
import typia from "typia";
export const checkString = (() => {
return (input) => "string" === typeof input;
})();
Thanks for your support.
Your donation encourages typia
development.
Also, typia
is re-distributing half of donations to core contributors of typia
.
Playground
You can experience how typia works by playground website:
Guide Documents
Check out the document in the website:
🏠 Home
📖 Features
🔗 Appendix