Sobre el proyecto
TypeFest es una colección de tipos de TypeScript reutilizables destinados a llenar vacíos en el sistema de tipos integrado. Se puede instalar desde npm como type-fest, y los tipos individuales se importan con la sintaxis de importación solo de tipos de TypeScript. La versión de desarrollo documentada requiere TypeScript 5.9 o superior, un proyecto ESM y el modo estricto habilitado en tsconfig. El mantenedor también señala que los tipos necesarios pueden copiarse y pegarse sin atribución.
La biblioteca cubre un amplio conjunto de casos de uso a nivel de tipo. Los tipos básicos incluyen Primitive, Class, Constructor, AbstractClass, TypedArray, ObservableLike y conjuntos de caracteres como LowercaseLetter, UppercaseLetter, DigitCharacter y Alphanumeric.
Los tipos de objetos y utilidades forman la sección más extensa. Los ejemplos incluyen Except para omitir claves, Writable y WritableDeep para eliminar modificadores readonly, Merge y MergeDeep para combinar tipos, PartialDeep y RequiredDeep para opcionalidad y requisito recursivos, ReadonlyDeep para inmutabilidad profunda, y SetOptional, SetRequired, SetReadonly y SetNonNullable para ajustar propiedades seleccionadas. También proporciona tipos de selección condicional como ConditionalKeys, ConditionalPick y ConditionalExcept, ayudas anidadas como PickDeep, OmitDeep, Get y Paths, y ayudas de unión como LiteralUnion, TaggedUnion, UnionToIntersection, KeysOfUnion y DistributedOmit.
Los tipos de guardas y booleanos incluyen If, IsAny, IsNever, IsUnknown, IsNull, IsUndefined, IsTuple, IsUnion, IsLiteral, IsStringLiteral, IsNullable y comprobaciones de igualdad como IsEqual. El soporte JSON incluye JsonValue, JsonPrimitive, JsonObject, JsonArray, Jsonifiable y Jsonify. Otros grupos cubren clonación estructurada, tipos asíncronos como Promisable, AsyncReturnType y Asyncify, tipos de manipulación de cadenas como Split, Replace, Trim, RemovePrefix y RemoveSuffix, y tipos de arrays o tuplas como ArrayElement, LastArrayElement, Includes, Join, ArraySlice, FixedLengthArray y NonEmptyTuple.
El README enlaza cada nombre de tipo a su definición fuente para documentación detallada. Un paquete relacionado, ts-extras, proporciona funciones en tiempo de ejecución para algunos de los mismos conceptos. El proyecto acepta propuestas y solicitudes de extracción para tipos adicionales comúnmente necesarios, sujeto a sus pautas de contribución.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.