Closed
Description
TypeScript Version: 3.0.0-dev.20180602
Search Terms:
number is not assignable with type literal, tuple assigned to object, fixed size tuples
Code
// Type Error: number is not assignable with type 2
let p0: { length: 2 } = [1, 2];
// ok
let p1: { length: 2, 0: number } = [1, 2]
// ok
let p2: { 0: number } = [1, 2]
Expected behavior:
After that, [number, number]
type should be equivalent to:
interface Tuple extends Array<number> {
0: number;
1: number;
length: 2;
}
let t: Tuple = [1, 2];
// no syntax error
let obj: { length: 2 } = t;
Hence, I would expect let p0: { length: 2 } = [1, 2];
to be correct.
Please not that let p1: { length: 2, 0: number } = [1, 2];
is allowed.
Actual behavior:
let p0: { length: 2 } = [1, 2];
is not correct and gives error Number is not assignable to type 2
.
Playground Link: