Welcome to Type Space, a suite of utility types for enhancing your TypeScript code. With
@cuppachino/type-space, you can perform a wide range of type operations,
including numeric calculations, string manipulation, tuple operations, and more.
Use your favorite package manager to install @cuppachino/type-space as a developer dependency.
pnpm add -D @cuppachino/type-spacenpm install --save-dev @cuppachino/type-spaceThe source code is fully tsdoc'd, so you can use your IDE's intellisense to reference examples and descriptions at any time. Click any type for more documentation.
NumberLiteral: A stringified number literal.Stringifiable: An alias forstring | number | bigint | boolean | null | undefined.UnknownArray: An alias forunknown[] | readonly unknown[], safer thanany.UnknownRecord: An alias forRecord<PropertyKey, unknown>, safer thananyor{}.
Absolute: Coerces a number literal to a positivenumberof the same magnitude.Add: Return the sum of two number literals.Subtract: Return the difference between two number literals.
IntoNumber: Coerce aNumberLiketype to anumberIntoNumberLiteral: Coerce aNumberLiketype to aNumberLiteralIsInteger: A boolean type that is true if a number literal is an integer.IsPositive: A boolean type that is true if a number literal is positive.IsNegative: A boolean type that is true if a number literal is negative.IsWhole: A boolean type that is true if a number literal is a whole number.NumberLike: Coerce either anumberor aNumberLiteralinto a union between the two.ParseNumberLiteral: Coerce aNumberLiteraltype to anumber
Chars: Splits a string literal into a tuple of characters. Reads more clearly thanSplitin some cases.ReverseString: Reverse a string literal.Split: Splits a string literal into a tuple of characters, separated by the given delimiter.SplitAt: Split a string literal into a tuple of two strings, separated by the given index, non-inclusive.Stringify: Converts a type to a string literal type, if possible.StringIncludes: A boolean type that is true if a string literal includes a given substring (⊆).StringIncludesProper: A boolean type that is true if a string literal includes a given substring, and the substring is not the entire string (⊂).
CreateTuple: Generate a fixed-length tuple.Flat: Recursively flatten a tuple up to a given depth.IndexOf: Return a union of a tuple's indices.Indices: Generate a tuple of a tuple's indices.Join: Joins a tuple of strings into a single string, separated by a delimiter.Length: Extract the length property from an array or tuple.MergeAll: Merge all type members of a tuple into a single type.PartitionKeys: Extract a union of keys for each member in a tuple into a new tuple; order is preserved.PartitionValues: Create a tuple of value(s) for the given key(s) in each member of a tuple; order is preserved.PartitionPick: Maps picked properties from each member of a tuple into a new tuple; order is preserved.Reverse: Reverse the order of elements in a tuple type.
Action :: <Tuple> -> NewTuple
Pop: Remove the last element from a tuple. Does not return the removed element.PopBy: Remove the lastNelements from a tuple.Push: Adds one element type to the end of a tuple. Does not return the new length of the tuple.Shift: Remove the first element from a tuple type. Does not return the removed element.ShiftBy: Remove the firstNelements from a tuple.Unshift: Adds one element type to the beginning of a tuple. Does not return the new length of the tuple.
Assert: Assert that a type is assignable to another type; shorthand forT extends U ? T : never.Combine: Simplify a type by mapping over its properties.KeyOf: Extract all keys from every member of a union type, unlikekeyofwhich only preserves shared members' keys.Mutable: Recursively removes thereadonlymodifier from all properties of a type.PartialSome: Return a new type that allows the specified keys to be undefined.PickAll: Extract properties from all members in a union, missing properties default to| undefined.RequireSome: Return a new type requiring the selected keys.Simplify: Simplify a type by mapping over its inferred properties - use whenCombinecannot infer a deep type.Subset: TypeScript equivalent of⊆.UnionLiteral: Create a union from a literal and primitive type without losing the literal type.UnionToIntersection: Create an intersection from all members of a union type.UnionToTuple: Convert a union to a tuple type. The order is not guaranteed.Zip: From a tuple of keys and a tuple of values, create a new record.
ExtractRequired: Extract all non-optional properties from a type; ℹ️exactOptionalPropertyTypes.ExtractOptional: Extract all optional properties from a type; ℹ️exactOptionalPropertyTypesExtractFunctions: Create a new type of all property functions and methods in a type.ExtractSetMembers: Create a union type of members in aSet.
Extends :: <T, R = T> -> boolean
Tis the type to check.Ris the type returned whenTextends the name of the generic.
ExtendsFunction: Return a type if the given type extends a function or method.
I hope you have fun with these utilities. Thank you for using type-space!