Skip to content

Referencia de IQAlias ​

QuickModel soporta una amplia gama de alias de cadena (IQAlias) para especificar tipos de forma concisa. Estos alias se utilizan dentro de los decoradores @Quick y @QType.

El uso de alias proporciona un excelente soporte de IntelliSense y mantiene tu código limpio evitando importaciones innecesarias de constructores globales.

Primitivos ​

Estos alias aseguran que los valores se coaccionen a sus respectivos tipos primitivos.

AliasResultadoDescripción
'string'StringConvierte el valor a cadena.
'number'NumberConvierte el valor a número.
'boolean'BooleanConvierte el valor a booleano (true/false).
'bigint'BigIntCrucial: Convierte enteros string/número a BigInt nativo.
'symbol'SymbolCrea un símbolo único o usa Symbol.for.
'null'nullAsegura que el valor sea null.
'undefined'undefinedAsegura que el valor sea undefined.

Objetos Nativos ​

Objetos estándar de JavaScript que requieren transformación desde formatos serializados (JSON).

AliasResultadoDescripción
'date'DateTransforma cadenas ISO ("2024...") o timestamps a objetos Date.
'regexp'RegExpTransforma patrones de cadena ("/abc/i") a objetos RegExp.
'error'ErrorReconstruye objetos Error desde objetos planos (preservando mensaje/stack).
'url'URLTransforma cadenas URL a objetos URL.
'urlsearchparams'URLSearchParamsTransforma query strings u objetos a URLSearchParams.
'promise'PromiseEnvuelve el valor en una Promise.resolve().

Colecciones ​

Tipos de Colección ES6 eficientes.

AliasResultadoDescripción
'map'MapTransforma array de tuplas [[k,v]] a Map.
'set'SetTransforma array [v1, v2] a Set (eliminando duplicados).
'weakmap'WeakMapTransforma array de tuplas a WeakMap.
'weakset'WeakSetTransforma array a WeakSet.
'array'ArrayAsegura que el valor es un array (Array.from).
'object'ObjectAsegura que el valor es un objeto.

Datos Binarios y Buffers ​

Manejo directo de tipos de datos binarios.

AliasResultadoDescripción
'arraybuffer'ArrayBufferManeja buffer de datos binarios crudos.
'sharedarraybuffer'SharedArrayBufferManeja buffer de datos binarios compartido.
'dataview'DataViewManeja vista DataView sobre un buffer.

Typed Arrays ​

Vistas de array binario específicas.

AliasResultado
'int8array'Int8Array
'uint8array'Uint8Array
'uint8clampedarray'Uint8ClampedArray
'int16array'Int16Array
'uint16array'Uint16Array
'int32array'Int32Array
'uint32array'Uint32Array
'float32array'Float32Array
'float64array'Float64Array
'bigint64array'BigInt64Array
'biguint64array'BigUint64Array

Web APIs ​

Soporte para estándares modernos de Web API.

AliasResultadoDescripción
'blob'BlobObjeto Binario Grande (Binary Large Object).
'file'FileObjeto de API File.
'formdata'FormDataEstructura de datos de formulario.
'headers'HeadersObjeto de Cabeceras HTTP.
'textencoder'TextEncoderUtilidad de codificación de texto.
'textdecoder'TextDecoderUtilidad de decodificación de texto.

Ejemplo de Uso ​

typescript
import { Quick, QModel } from 'quickmodel';

@Quick({
	// Primitivos
	id: 'string',
	count: 'number',
	isActive: 'boolean',

	// Complejos
	created: 'date',
	meta: 'map',
	tags: 'set',

	// Binarios
	image: 'uint8array',
	raw: 'arraybuffer',
})
class Resource extends QModel<IResource> {
	// ...
}