// 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 es una biblioteca de transformadores que admite las características a continuación:
Nota
class-validatorclass-transformer Si llama a la función typia , se compilaría como a continuación.
Este es el concepto clave de typia , transformando el tipo de mecanografiado en una función de tiempo de ejecución. La función typia.is<T>() se transforma en un verificador de tipo dedicado analizando el tipo T de destino en el nivel de compilación.
Esta característica permite a los desarrolladores garantizar la seguridad de tipo en sus aplicaciones, aprovechando la tipificación estática de TypeScript al tiempo que proporciona validación de tiempo de ejecución. En lugar de definir esquemas adicionales, simplemente puede utilizar el tipo de mecanografiado puro en sí.
//----
// 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 ;
} ) ( ) ; Gracias por tu apoyo.
Su donación fomenta el desarrollo typia .
Además, typia está redistribuyendo la mitad de las donaciones a los contribuyentes centrales de typia .
nonara/ts-patchryoppippi/unplugin-typiaPuede experimentar cómo funciona Typia en el sitio web de Playground:
Consulte el documento en el sitio web:
assert()is() funciónvalidate()stringify()parse()application() funciónparameters()schema()decode()encode()dev.to Artículos