Sobre o projeto

TypeFest é uma coleção de tipos TypeScript reutilizáveis destinada a preencher lacunas no sistema de tipos integrado. Pode ser instalada a partir do npm como type-fest, e os tipos individuais são importados com a sintaxe de importação somente de tipos do TypeScript. A versão de desenvolvimento documentada exige TypeScript 5.9 ou mais recente, um projeto ESM e o modo estrito habilitado no tsconfig. O mantenedor também observa que os tipos necessários podem ser copiados e colados sem crédito. A biblioteca cobre um amplo conjunto de casos de uso em nível de tipo. Os tipos básicos incluem Primitive, Class, Constructor, AbstractClass, TypedArray, ObservableLike e conjuntos de caracteres como LowercaseLetter, UppercaseLetter, DigitCharacter e Alphanumeric. Os tipos de objeto e utilitários formam a maior seção. Exemplos incluem Except para omitir chaves, Writable e WritableDeep para remover modificadores readonly, Merge e MergeDeep para combinar tipos, PartialDeep e RequiredDeep para opcionalidade e obrigatoriedade recursivas, ReadonlyDeep para imutabilidade profunda, e SetOptional, SetRequired, SetReadonly e SetNonNullable para ajustar propriedades selecionadas. Também fornece tipos de seleção condicional como ConditionalKeys, ConditionalPick e ConditionalExcept, auxiliares aninhados como PickDeep, OmitDeep, Get e Paths, e auxiliares de união como LiteralUnion, TaggedUnion, UnionToIntersection, KeysOfUnion e DistributedOmit. Os tipos de guarda de tipo e booleanos incluem If, IsAny, IsNever, IsUnknown, IsNull, IsUndefined, IsTuple, IsUnion, IsLiteral, IsStringLiteral, IsNullable e verificações de igualdade como IsEqual. O suporte a JSON inclui JsonValue, JsonPrimitive, JsonObject, JsonArray, Jsonifiable e Jsonify. Outros grupos abrangem clonagem estruturada, tipos assíncronos como Promisable, AsyncReturnType e Asyncify, tipos de manipulação de strings como Split, Replace, Trim, RemovePrefix e RemoveSuffix, e tipos de array ou tupla como ArrayElement, LastArrayElement, Includes, Join, ArraySlice, FixedLengthArray e NonEmptyTuple. O README vincula cada nome de tipo à sua definição de origem para documentação detalhada. Um pacote relacionado, ts-extras, fornece funções em tempo de execução para alguns dos mesmos conceitos. O projeto aceita propostas e pull requests para tipos adicionais comumente necessários, sujeitos às suas diretrizes de contribuição.