Tuple iteration and merging
See original GitHub issueEdit: Remove indexing part Edit 2: Replace tuple mapping syntax with normal mapped types
Search Terms
Concatentate and merge tuples’ entries.
Suggestion
- I would like to be able to extract and spread in positions other than the last part of a tuple.
- I would like to merge a tuple into an intersection or concatenation of its members.
Use Cases
- Converting a tuple to its intersection, such as with
Object.assign
’s assignee. - Typing
Array.prototype.concat
correctly for tuples.
Syntax
The syntax comes in a few new forms:
[...A, B]
appendsB
to the tupleA
. Similarly,[...infer A, any] extends B ? A : []
drops the last item of the tuple and[...any[], infer A] extends B ? A : never
extracts the first.{... ...T}
for an n-ary merge and[... ...T]
an n-ary concatenation.
Examples
Here’s the types for each method I mentioned above.
interface Array<T> {
concat<U extends any[]>(...others: U): [...this, ... ...{[I in keyof U]: (
U[I] extends any[] ? N : U[I] extends ArrayLike<infer R> ? R[] : [U[I]]
)}];
}
interface ObjectConstructor {
assign(target: {... ...typeof sources}, ...sources: object[]): typeof target;
}
Checklist
My suggestion meets these guidelines:
- This wouldn’t be a breaking change in existing TypeScript / JavaScript code
- This wouldn’t change the runtime behavior of existing JavaScript code
- This could be implemented without emitting different JS based on the types of the expressions
- This isn’t a runtime feature (e.g. new expression-level syntax)
Issue Analytics
- State:
- Created 5 years ago
- Reactions:23
- Comments:14 (5 by maintainers)
Top Results From Across the Web
Python Program to Merge tuple list by overlapping mid tuple
Given two lists that contain tuples as elements, the task is to write a Python program to accommodate tuples from the second list...
Read more >How do I iterate over the tuples of the items of two or more lists ...
The zip function "returns a list of tuples, where the i-th tuple contains the i-th element from each of the argument sequences or...
Read more >5 Easy Ways to Iterate Through a Python List or Tuple
Python list comprehension is a simple, concise way of iterating through lists (or tuples) to access or alter values. The result of list...
Read more >How we can iterate through a Python list of tuples?
Easiest way is to employ two nested for loops. Outer loop fetches each tuple and inner loop traverses each item from the tuple....
Read more >Collections and Data Structures - Julia Documentation
Advance the iterator to obtain the next element. If no elements remain, nothing should be returned. Otherwise, a 2-tuple of the next element...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
@weswigham this should fit your need and it enforces object and they are here
@weswigham check this out: