À propos du projet
TypeFest est une collection de types TypeScript réutilisables destinés à combler les lacunes du système de types intégré. Il peut être installé depuis npm en tant que type-fest, et les types individuels sont importés avec la syntaxe d'importation de type uniquement de TypeScript. La version de développement documentée nécessite TypeScript 5.9 ou versions ultérieures, un projet ESM et le mode strict activé dans tsconfig. Le mainteneur note également que les types nécessaires peuvent être copiés-collés sans attribution.
La bibliothèque couvre une large gamme de cas d'utilisation au niveau des types. Les types de base incluent Primitive, Class, Constructor, AbstractClass, TypedArray, ObservableLike, et des ensembles de caractères tels que LowercaseLetter, UppercaseLetter, DigitCharacter et Alphanumeric.
Les types d'objets et utilitaires forment la plus grande section. Des exemples incluent Except pour omettre les clés, Writable et WritableDeep pour supprimer les modificateurs readonly, Merge et MergeDeep pour combiner les types, PartialDeep et RequiredDeep pour l'optionnalité et l'exigence récursives, ReadonlyDeep pour l'immutabilité profonde, et SetOptional, SetRequired, SetReadonly et SetNonNullable pour ajuster les propriétés sélectionnées. Il fournit également des types de sélection conditionnelle tels que ConditionalKeys, ConditionalPick et ConditionalExcept, des helpers nichés tels que PickDeep, OmitDeep, Get et Paths, et des helpers d'union tels que LiteralUnion, TaggedUnion, UnionToIntersection, KeysOfUnion et DistributedOmit.
Les types de garde de type et booléens incluent If, IsAny, IsNever, IsUnknown, IsNull, IsUndefined, IsTuple, IsUnion, IsLiteral, IsStringLiteral, IsNullable, et les vérifications d'égalité telles qu'IsEqual. Le support JSON inclue JsonValue, JsonPrimitive, JsonObject, JsonArray, Jsonifiable et Jsonify. D'autres groupes couvrent le clonage structuré, les types asynchrones tels que Promisable, AsyncReturnType et Asyncify, les types de manipulation de chaîne tels que Split, Replace, Trim, RemovePrefix et RemoveSuffix, et les types de tableau ou tuple tels que ArrayElement, LastArrayElement, Includes, Join, ArraySlice, FixedLengthArray et NonEmptyTuple.
Le README lie chaque nom de type à sa définition source pour une documentation détaillée. Un package connexe, ts-extras, fournit des fonctions d'exécution pour certains des mêmes concepts. Le projet accepte les propositions et les demandes de tirage (pull requests) pour des types supplémentaires couramment nécessaires, sous réserve de ses directives de contribution.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.