// 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 {
// application schema from a class or interface type
export function application<App, Model>(): ILlmApplication<Model>;
// structured output
export function parameters<P, Moodel>(): 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:
class-validator
class-transformer
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/checkUUID.js
//----
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
.
You can experience how typia works by playground website:
Check out the document in the website:
dev.to
Articles