// 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 é uma biblioteca de transformadores que suporta os recursos abaixo:
Observação
class-validatorclass-transformer Se você ligar para a função typia , ele será compilado como abaixo.
Este é o conceito -chave de typia , transformando o tipo de texto em uma função de tempo de execução. A função typia.is<T>() é transformada em um verificador de tipo dedicado, analisando o tipo de alvo T no nível de compilação.
Esse recurso permite que os desenvolvedores garantem a segurança do tipo em seus aplicativos, alavancando a digitação estática do TypeScript e também fornecendo validação de tempo de execução. Em vez de definir esquemas adicionais, você pode simplesmente utilizar o próprio tipo de datilografia pura.
//----
// 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 ;
} ) ( ) ; Obrigado pelo seu apoio.
Sua doação incentiva o desenvolvimento typia .
Além disso, typia está re-distribuindo metade das doações para os principais colaboradores de typia .
nonara/ts-patchryoppippi/unplugin-typiaVocê pode experimentar como o típico funciona por site de playground:
Confira o documento no site:
assert()is() funçãovalidate()stringify()parse()application()parameters() funçãoschema()decode()encode()dev.to Artigos