- 
                Notifications
    You must be signed in to change notification settings 
- Fork 13.1k
Closed
Labels
QuestionAn issue which isn't directly actionable in codeAn issue which isn't directly actionable in code
Description
TypeScript Version: typescript@2.7.0-dev.20171207
Code
type UnionizeTuple<T extends [any]> = T[number];
type a = ['hi', 'there']
type b = UnionizeTuple<a>Expected behavior:
b === 'hi' | 'there'Actual behavior:
Type '["hi", "there"]' does not satisfy the constraint '[any]'.
  Types of property 'length' are incompatible.
    Type '2' is not assignable to type '1'
This is working as expected in all previous versions of typescript. Updated to the latest typescript@next this morning and this broke. I see why this happened, by being smarter about how we process tuples we can know at compile time the length of a tuple. But because there are not variadic kinds, there is no other way to accomplish the above (or much more complicated examples as I am using elsewhere).
Metadata
Metadata
Assignees
Labels
QuestionAn issue which isn't directly actionable in codeAn issue which isn't directly actionable in code