Skip to Content
πŸ“– Guide DocumentsπŸ™‹πŸ»β€β™‚οΈ Introduction

Outline

Typia Logo

MIT LicenseNPM VersionNPM DownloadsBuild StatusGuide DocumentsGurubaseDiscord
// RUNTIME VALIDATORS export function is<T>(input: unknown): input is T; // returns boolean export function assert<T>(input: unknown): T; // throws TypeGuardError export function assertGuard<T>(input: unknown): asserts input is T; export function validate<T>(input: unknown): IValidation<T>; // detailed // JSON FUNCTIONS export namespace json { export function application<T>(): IJsonApplication; // JSON schema export function assertParse<T>(input: string): T; // type safe parser export function assertStringify<T>(input: T): string; // safe and faster } // LLM FUNCTION CALLING SCHEMA export namespace llm { // collection of function calling schemas export function application<Class, Model>(): ILlmApplication<Class>; export function controller<Class, Model>( name: string, execute: Class, ): ILlmController<Model>; // +executor // structured output export function parameters<P, Model>(): ILlmSchema.IParameters<Model>; export function schema<T, Model>(): ILlmSchema<Model>; // type schema } // PROTOCOL BUFFER export namespace protobuf { export function message<T>(): string; // Protocol Buffer message export function assertDecode<T>(buffer: Uint8Array): T; // safe decoder export function assertEncode<T>(input: T): Uint8Array; // safe encoder } // RANDOM GENERATOR export function random<T>(g?: Partial<IRandomGenerator>): T;

typia is a transformer library supporting below features:

  • Super-fast Runtime Validators
  • Enhanced JSON functions
  • LLM function calling schema and structured output
  • Protocol Buffer encoder and decoder
  • Random data generator

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.

//---- // examples/checkString.ts //---- import typia, { tags } from "typia"; export const checkString = typia.createIs<string>(); //---- // examples/checkString.js //---- import typia from "typia"; export const checkString = (() => { return (input) => "string" === typeof input; })();

Sponsors

Thanks for your support.

Your donation encourages typia development.

Also, typia is re-distributing half of donations to core contributors of typia.

Sponsors

Last updated on