mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-15 11:35:42 -06:00
Accept new baselines
This commit is contained in:
parent
d4f480cbbb
commit
86704e5bf9
81
tests/baselines/reference/unionsOfTupleTypes1.errors.txt
Normal file
81
tests/baselines/reference/unionsOfTupleTypes1.errors.txt
Normal file
@ -0,0 +1,81 @@
|
||||
tests/cases/conformance/types/tuple/unionsOfTupleTypes1.ts(27,20): error TS2493: Tuple type '[string, number]' with length '2' cannot be assigned to tuple with length '3'.
|
||||
tests/cases/conformance/types/tuple/unionsOfTupleTypes1.ts(28,20): error TS2460: Type 'T2' has no property '2'.
|
||||
tests/cases/conformance/types/tuple/unionsOfTupleTypes1.ts(31,16): error TS2493: Tuple type '[string, number]' with length '2' cannot be assigned to tuple with length '3'.
|
||||
tests/cases/conformance/types/tuple/unionsOfTupleTypes1.ts(32,16): error TS2460: Type 'T2' has no property '2'.
|
||||
tests/cases/conformance/types/tuple/unionsOfTupleTypes1.ts(37,18): error TS2733: Index '2' is out-of-bounds in tuple of length 2.
|
||||
|
||||
|
||||
==== tests/cases/conformance/types/tuple/unionsOfTupleTypes1.ts (5 errors) ====
|
||||
type T1 = [string, number];
|
||||
type T2 = [boolean] | [string, number];
|
||||
type T3 = [string, ...number[]];
|
||||
type T4 = [boolean] | [string, ...number[]];
|
||||
|
||||
type T10 = T1[0]; // string
|
||||
type T11 = T1[1]; // number
|
||||
type T12 = T1[2]; // undefined
|
||||
type T1N = T1[number]; // string | number
|
||||
|
||||
type T20 = T2[0]; // string | boolean
|
||||
type T21 = T2[1]; // number | undefined
|
||||
type T22 = T2[2]; // undefined
|
||||
type T2N = T2[number]; // string | number | boolean
|
||||
|
||||
type T30 = T3[0]; // string
|
||||
type T31 = T3[1]; // number
|
||||
type T32 = T3[2]; // number
|
||||
type T3N = T3[number]; // string | number
|
||||
|
||||
type T40 = T4[0]; // string | boolean
|
||||
type T41 = T4[1]; // number | undefined
|
||||
type T42 = T4[2]; // number | undefined
|
||||
type T4N = T4[number]; // string | number | boolean
|
||||
|
||||
function f1(t1: T1, t2: T2, t3: T3, t4: T4, x: number) {
|
||||
let [d10, d11, d12] = t1; // string, number
|
||||
~~~
|
||||
!!! error TS2493: Tuple type '[string, number]' with length '2' cannot be assigned to tuple with length '3'.
|
||||
let [d20, d21, d22] = t2; // string | boolean, number | undefined
|
||||
~~~
|
||||
!!! error TS2460: Type 'T2' has no property '2'.
|
||||
let [d30, d31, d32] = t3; // string, number, number
|
||||
let [d40, d41, d42] = t4; // string | boolean, number | undefined, number | undefined
|
||||
[d10, d11, d12] = t1;
|
||||
~~~
|
||||
!!! error TS2493: Tuple type '[string, number]' with length '2' cannot be assigned to tuple with length '3'.
|
||||
[d20, d21, d22] = t2;
|
||||
~~~
|
||||
!!! error TS2460: Type 'T2' has no property '2'.
|
||||
[d30, d31, d32] = t3;
|
||||
[d40, d41, d42] = t4;
|
||||
let t10 = t1[0]; // string
|
||||
let t11 = t1[1]; // number
|
||||
let t12 = t1[2]; // undefined
|
||||
~
|
||||
!!! error TS2733: Index '2' is out-of-bounds in tuple of length 2.
|
||||
let t1x = t1[x]; // string | number
|
||||
let t20 = t2[0]; // string | boolean
|
||||
let t21 = t2[1]; // number | undefined
|
||||
let t22 = t2[2]; // undefined
|
||||
let t2x = t2[x]; // string | number | boolean
|
||||
let t30 = t3[0]; // string
|
||||
let t31 = t3[1]; // number
|
||||
let t32 = t3[2]; // number
|
||||
let t3x = t3[x]; // string | number
|
||||
let t40 = t4[0]; // string | boolean
|
||||
let t41 = t4[1]; // number | undefined
|
||||
let t42 = t4[2]; // number | undefined
|
||||
let t4x = t4[x]; // string | number | boolean
|
||||
t1[1] = 42;
|
||||
t2[1] = 42;
|
||||
t3[1] = 42;
|
||||
t4[1] = 42;
|
||||
}
|
||||
|
||||
// Repro from #27543
|
||||
|
||||
type Unioned = [string] | [string, number];
|
||||
const ex: Unioned = ["hi"] as Unioned;
|
||||
|
||||
const [x, y] = ex;
|
||||
|
||||
99
tests/baselines/reference/unionsOfTupleTypes1.js
Normal file
99
tests/baselines/reference/unionsOfTupleTypes1.js
Normal file
@ -0,0 +1,99 @@
|
||||
//// [unionsOfTupleTypes1.ts]
|
||||
type T1 = [string, number];
|
||||
type T2 = [boolean] | [string, number];
|
||||
type T3 = [string, ...number[]];
|
||||
type T4 = [boolean] | [string, ...number[]];
|
||||
|
||||
type T10 = T1[0]; // string
|
||||
type T11 = T1[1]; // number
|
||||
type T12 = T1[2]; // undefined
|
||||
type T1N = T1[number]; // string | number
|
||||
|
||||
type T20 = T2[0]; // string | boolean
|
||||
type T21 = T2[1]; // number | undefined
|
||||
type T22 = T2[2]; // undefined
|
||||
type T2N = T2[number]; // string | number | boolean
|
||||
|
||||
type T30 = T3[0]; // string
|
||||
type T31 = T3[1]; // number
|
||||
type T32 = T3[2]; // number
|
||||
type T3N = T3[number]; // string | number
|
||||
|
||||
type T40 = T4[0]; // string | boolean
|
||||
type T41 = T4[1]; // number | undefined
|
||||
type T42 = T4[2]; // number | undefined
|
||||
type T4N = T4[number]; // string | number | boolean
|
||||
|
||||
function f1(t1: T1, t2: T2, t3: T3, t4: T4, x: number) {
|
||||
let [d10, d11, d12] = t1; // string, number
|
||||
let [d20, d21, d22] = t2; // string | boolean, number | undefined
|
||||
let [d30, d31, d32] = t3; // string, number, number
|
||||
let [d40, d41, d42] = t4; // string | boolean, number | undefined, number | undefined
|
||||
[d10, d11, d12] = t1;
|
||||
[d20, d21, d22] = t2;
|
||||
[d30, d31, d32] = t3;
|
||||
[d40, d41, d42] = t4;
|
||||
let t10 = t1[0]; // string
|
||||
let t11 = t1[1]; // number
|
||||
let t12 = t1[2]; // undefined
|
||||
let t1x = t1[x]; // string | number
|
||||
let t20 = t2[0]; // string | boolean
|
||||
let t21 = t2[1]; // number | undefined
|
||||
let t22 = t2[2]; // undefined
|
||||
let t2x = t2[x]; // string | number | boolean
|
||||
let t30 = t3[0]; // string
|
||||
let t31 = t3[1]; // number
|
||||
let t32 = t3[2]; // number
|
||||
let t3x = t3[x]; // string | number
|
||||
let t40 = t4[0]; // string | boolean
|
||||
let t41 = t4[1]; // number | undefined
|
||||
let t42 = t4[2]; // number | undefined
|
||||
let t4x = t4[x]; // string | number | boolean
|
||||
t1[1] = 42;
|
||||
t2[1] = 42;
|
||||
t3[1] = 42;
|
||||
t4[1] = 42;
|
||||
}
|
||||
|
||||
// Repro from #27543
|
||||
|
||||
type Unioned = [string] | [string, number];
|
||||
const ex: Unioned = ["hi"] as Unioned;
|
||||
|
||||
const [x, y] = ex;
|
||||
|
||||
|
||||
//// [unionsOfTupleTypes1.js]
|
||||
"use strict";
|
||||
function f1(t1, t2, t3, t4, x) {
|
||||
var d10 = t1[0], d11 = t1[1], d12 = t1[2]; // string, number
|
||||
var d20 = t2[0], d21 = t2[1], d22 = t2[2]; // string | boolean, number | undefined
|
||||
var d30 = t3[0], d31 = t3[1], d32 = t3[2]; // string, number, number
|
||||
var d40 = t4[0], d41 = t4[1], d42 = t4[2]; // string | boolean, number | undefined, number | undefined
|
||||
d10 = t1[0], d11 = t1[1], d12 = t1[2];
|
||||
d20 = t2[0], d21 = t2[1], d22 = t2[2];
|
||||
d30 = t3[0], d31 = t3[1], d32 = t3[2];
|
||||
d40 = t4[0], d41 = t4[1], d42 = t4[2];
|
||||
var t10 = t1[0]; // string
|
||||
var t11 = t1[1]; // number
|
||||
var t12 = t1[2]; // undefined
|
||||
var t1x = t1[x]; // string | number
|
||||
var t20 = t2[0]; // string | boolean
|
||||
var t21 = t2[1]; // number | undefined
|
||||
var t22 = t2[2]; // undefined
|
||||
var t2x = t2[x]; // string | number | boolean
|
||||
var t30 = t3[0]; // string
|
||||
var t31 = t3[1]; // number
|
||||
var t32 = t3[2]; // number
|
||||
var t3x = t3[x]; // string | number
|
||||
var t40 = t4[0]; // string | boolean
|
||||
var t41 = t4[1]; // number | undefined
|
||||
var t42 = t4[2]; // number | undefined
|
||||
var t4x = t4[x]; // string | number | boolean
|
||||
t1[1] = 42;
|
||||
t2[1] = 42;
|
||||
t3[1] = 42;
|
||||
t4[1] = 42;
|
||||
}
|
||||
var ex = ["hi"];
|
||||
var x = ex[0], y = ex[1];
|
||||
241
tests/baselines/reference/unionsOfTupleTypes1.symbols
Normal file
241
tests/baselines/reference/unionsOfTupleTypes1.symbols
Normal file
@ -0,0 +1,241 @@
|
||||
=== tests/cases/conformance/types/tuple/unionsOfTupleTypes1.ts ===
|
||||
type T1 = [string, number];
|
||||
>T1 : Symbol(T1, Decl(unionsOfTupleTypes1.ts, 0, 0))
|
||||
|
||||
type T2 = [boolean] | [string, number];
|
||||
>T2 : Symbol(T2, Decl(unionsOfTupleTypes1.ts, 0, 27))
|
||||
|
||||
type T3 = [string, ...number[]];
|
||||
>T3 : Symbol(T3, Decl(unionsOfTupleTypes1.ts, 1, 39))
|
||||
|
||||
type T4 = [boolean] | [string, ...number[]];
|
||||
>T4 : Symbol(T4, Decl(unionsOfTupleTypes1.ts, 2, 32))
|
||||
|
||||
type T10 = T1[0]; // string
|
||||
>T10 : Symbol(T10, Decl(unionsOfTupleTypes1.ts, 3, 44))
|
||||
>T1 : Symbol(T1, Decl(unionsOfTupleTypes1.ts, 0, 0))
|
||||
|
||||
type T11 = T1[1]; // number
|
||||
>T11 : Symbol(T11, Decl(unionsOfTupleTypes1.ts, 5, 17))
|
||||
>T1 : Symbol(T1, Decl(unionsOfTupleTypes1.ts, 0, 0))
|
||||
|
||||
type T12 = T1[2]; // undefined
|
||||
>T12 : Symbol(T12, Decl(unionsOfTupleTypes1.ts, 6, 17))
|
||||
>T1 : Symbol(T1, Decl(unionsOfTupleTypes1.ts, 0, 0))
|
||||
|
||||
type T1N = T1[number]; // string | number
|
||||
>T1N : Symbol(T1N, Decl(unionsOfTupleTypes1.ts, 7, 17))
|
||||
>T1 : Symbol(T1, Decl(unionsOfTupleTypes1.ts, 0, 0))
|
||||
|
||||
type T20 = T2[0]; // string | boolean
|
||||
>T20 : Symbol(T20, Decl(unionsOfTupleTypes1.ts, 8, 22))
|
||||
>T2 : Symbol(T2, Decl(unionsOfTupleTypes1.ts, 0, 27))
|
||||
|
||||
type T21 = T2[1]; // number | undefined
|
||||
>T21 : Symbol(T21, Decl(unionsOfTupleTypes1.ts, 10, 17))
|
||||
>T2 : Symbol(T2, Decl(unionsOfTupleTypes1.ts, 0, 27))
|
||||
|
||||
type T22 = T2[2]; // undefined
|
||||
>T22 : Symbol(T22, Decl(unionsOfTupleTypes1.ts, 11, 17))
|
||||
>T2 : Symbol(T2, Decl(unionsOfTupleTypes1.ts, 0, 27))
|
||||
|
||||
type T2N = T2[number]; // string | number | boolean
|
||||
>T2N : Symbol(T2N, Decl(unionsOfTupleTypes1.ts, 12, 17))
|
||||
>T2 : Symbol(T2, Decl(unionsOfTupleTypes1.ts, 0, 27))
|
||||
|
||||
type T30 = T3[0]; // string
|
||||
>T30 : Symbol(T30, Decl(unionsOfTupleTypes1.ts, 13, 22))
|
||||
>T3 : Symbol(T3, Decl(unionsOfTupleTypes1.ts, 1, 39))
|
||||
|
||||
type T31 = T3[1]; // number
|
||||
>T31 : Symbol(T31, Decl(unionsOfTupleTypes1.ts, 15, 17))
|
||||
>T3 : Symbol(T3, Decl(unionsOfTupleTypes1.ts, 1, 39))
|
||||
|
||||
type T32 = T3[2]; // number
|
||||
>T32 : Symbol(T32, Decl(unionsOfTupleTypes1.ts, 16, 17))
|
||||
>T3 : Symbol(T3, Decl(unionsOfTupleTypes1.ts, 1, 39))
|
||||
|
||||
type T3N = T3[number]; // string | number
|
||||
>T3N : Symbol(T3N, Decl(unionsOfTupleTypes1.ts, 17, 17))
|
||||
>T3 : Symbol(T3, Decl(unionsOfTupleTypes1.ts, 1, 39))
|
||||
|
||||
type T40 = T4[0]; // string | boolean
|
||||
>T40 : Symbol(T40, Decl(unionsOfTupleTypes1.ts, 18, 22))
|
||||
>T4 : Symbol(T4, Decl(unionsOfTupleTypes1.ts, 2, 32))
|
||||
|
||||
type T41 = T4[1]; // number | undefined
|
||||
>T41 : Symbol(T41, Decl(unionsOfTupleTypes1.ts, 20, 17))
|
||||
>T4 : Symbol(T4, Decl(unionsOfTupleTypes1.ts, 2, 32))
|
||||
|
||||
type T42 = T4[2]; // number | undefined
|
||||
>T42 : Symbol(T42, Decl(unionsOfTupleTypes1.ts, 21, 17))
|
||||
>T4 : Symbol(T4, Decl(unionsOfTupleTypes1.ts, 2, 32))
|
||||
|
||||
type T4N = T4[number]; // string | number | boolean
|
||||
>T4N : Symbol(T4N, Decl(unionsOfTupleTypes1.ts, 22, 17))
|
||||
>T4 : Symbol(T4, Decl(unionsOfTupleTypes1.ts, 2, 32))
|
||||
|
||||
function f1(t1: T1, t2: T2, t3: T3, t4: T4, x: number) {
|
||||
>f1 : Symbol(f1, Decl(unionsOfTupleTypes1.ts, 23, 22))
|
||||
>t1 : Symbol(t1, Decl(unionsOfTupleTypes1.ts, 25, 12))
|
||||
>T1 : Symbol(T1, Decl(unionsOfTupleTypes1.ts, 0, 0))
|
||||
>t2 : Symbol(t2, Decl(unionsOfTupleTypes1.ts, 25, 19))
|
||||
>T2 : Symbol(T2, Decl(unionsOfTupleTypes1.ts, 0, 27))
|
||||
>t3 : Symbol(t3, Decl(unionsOfTupleTypes1.ts, 25, 27))
|
||||
>T3 : Symbol(T3, Decl(unionsOfTupleTypes1.ts, 1, 39))
|
||||
>t4 : Symbol(t4, Decl(unionsOfTupleTypes1.ts, 25, 35))
|
||||
>T4 : Symbol(T4, Decl(unionsOfTupleTypes1.ts, 2, 32))
|
||||
>x : Symbol(x, Decl(unionsOfTupleTypes1.ts, 25, 43))
|
||||
|
||||
let [d10, d11, d12] = t1; // string, number
|
||||
>d10 : Symbol(d10, Decl(unionsOfTupleTypes1.ts, 26, 9))
|
||||
>d11 : Symbol(d11, Decl(unionsOfTupleTypes1.ts, 26, 13))
|
||||
>d12 : Symbol(d12, Decl(unionsOfTupleTypes1.ts, 26, 18))
|
||||
>t1 : Symbol(t1, Decl(unionsOfTupleTypes1.ts, 25, 12))
|
||||
|
||||
let [d20, d21, d22] = t2; // string | boolean, number | undefined
|
||||
>d20 : Symbol(d20, Decl(unionsOfTupleTypes1.ts, 27, 9))
|
||||
>d21 : Symbol(d21, Decl(unionsOfTupleTypes1.ts, 27, 13))
|
||||
>d22 : Symbol(d22, Decl(unionsOfTupleTypes1.ts, 27, 18))
|
||||
>t2 : Symbol(t2, Decl(unionsOfTupleTypes1.ts, 25, 19))
|
||||
|
||||
let [d30, d31, d32] = t3; // string, number, number
|
||||
>d30 : Symbol(d30, Decl(unionsOfTupleTypes1.ts, 28, 9))
|
||||
>d31 : Symbol(d31, Decl(unionsOfTupleTypes1.ts, 28, 13))
|
||||
>d32 : Symbol(d32, Decl(unionsOfTupleTypes1.ts, 28, 18))
|
||||
>t3 : Symbol(t3, Decl(unionsOfTupleTypes1.ts, 25, 27))
|
||||
|
||||
let [d40, d41, d42] = t4; // string | boolean, number | undefined, number | undefined
|
||||
>d40 : Symbol(d40, Decl(unionsOfTupleTypes1.ts, 29, 9))
|
||||
>d41 : Symbol(d41, Decl(unionsOfTupleTypes1.ts, 29, 13))
|
||||
>d42 : Symbol(d42, Decl(unionsOfTupleTypes1.ts, 29, 18))
|
||||
>t4 : Symbol(t4, Decl(unionsOfTupleTypes1.ts, 25, 35))
|
||||
|
||||
[d10, d11, d12] = t1;
|
||||
>d10 : Symbol(d10, Decl(unionsOfTupleTypes1.ts, 26, 9))
|
||||
>d11 : Symbol(d11, Decl(unionsOfTupleTypes1.ts, 26, 13))
|
||||
>d12 : Symbol(d12, Decl(unionsOfTupleTypes1.ts, 26, 18))
|
||||
>t1 : Symbol(t1, Decl(unionsOfTupleTypes1.ts, 25, 12))
|
||||
|
||||
[d20, d21, d22] = t2;
|
||||
>d20 : Symbol(d20, Decl(unionsOfTupleTypes1.ts, 27, 9))
|
||||
>d21 : Symbol(d21, Decl(unionsOfTupleTypes1.ts, 27, 13))
|
||||
>d22 : Symbol(d22, Decl(unionsOfTupleTypes1.ts, 27, 18))
|
||||
>t2 : Symbol(t2, Decl(unionsOfTupleTypes1.ts, 25, 19))
|
||||
|
||||
[d30, d31, d32] = t3;
|
||||
>d30 : Symbol(d30, Decl(unionsOfTupleTypes1.ts, 28, 9))
|
||||
>d31 : Symbol(d31, Decl(unionsOfTupleTypes1.ts, 28, 13))
|
||||
>d32 : Symbol(d32, Decl(unionsOfTupleTypes1.ts, 28, 18))
|
||||
>t3 : Symbol(t3, Decl(unionsOfTupleTypes1.ts, 25, 27))
|
||||
|
||||
[d40, d41, d42] = t4;
|
||||
>d40 : Symbol(d40, Decl(unionsOfTupleTypes1.ts, 29, 9))
|
||||
>d41 : Symbol(d41, Decl(unionsOfTupleTypes1.ts, 29, 13))
|
||||
>d42 : Symbol(d42, Decl(unionsOfTupleTypes1.ts, 29, 18))
|
||||
>t4 : Symbol(t4, Decl(unionsOfTupleTypes1.ts, 25, 35))
|
||||
|
||||
let t10 = t1[0]; // string
|
||||
>t10 : Symbol(t10, Decl(unionsOfTupleTypes1.ts, 34, 7))
|
||||
>t1 : Symbol(t1, Decl(unionsOfTupleTypes1.ts, 25, 12))
|
||||
>0 : Symbol(0)
|
||||
|
||||
let t11 = t1[1]; // number
|
||||
>t11 : Symbol(t11, Decl(unionsOfTupleTypes1.ts, 35, 7))
|
||||
>t1 : Symbol(t1, Decl(unionsOfTupleTypes1.ts, 25, 12))
|
||||
>1 : Symbol(1)
|
||||
|
||||
let t12 = t1[2]; // undefined
|
||||
>t12 : Symbol(t12, Decl(unionsOfTupleTypes1.ts, 36, 7))
|
||||
>t1 : Symbol(t1, Decl(unionsOfTupleTypes1.ts, 25, 12))
|
||||
|
||||
let t1x = t1[x]; // string | number
|
||||
>t1x : Symbol(t1x, Decl(unionsOfTupleTypes1.ts, 37, 7))
|
||||
>t1 : Symbol(t1, Decl(unionsOfTupleTypes1.ts, 25, 12))
|
||||
>x : Symbol(x, Decl(unionsOfTupleTypes1.ts, 25, 43))
|
||||
|
||||
let t20 = t2[0]; // string | boolean
|
||||
>t20 : Symbol(t20, Decl(unionsOfTupleTypes1.ts, 38, 7))
|
||||
>t2 : Symbol(t2, Decl(unionsOfTupleTypes1.ts, 25, 19))
|
||||
>0 : Symbol(0)
|
||||
|
||||
let t21 = t2[1]; // number | undefined
|
||||
>t21 : Symbol(t21, Decl(unionsOfTupleTypes1.ts, 39, 7))
|
||||
>t2 : Symbol(t2, Decl(unionsOfTupleTypes1.ts, 25, 19))
|
||||
>1 : Symbol(1)
|
||||
|
||||
let t22 = t2[2]; // undefined
|
||||
>t22 : Symbol(t22, Decl(unionsOfTupleTypes1.ts, 40, 7))
|
||||
>t2 : Symbol(t2, Decl(unionsOfTupleTypes1.ts, 25, 19))
|
||||
|
||||
let t2x = t2[x]; // string | number | boolean
|
||||
>t2x : Symbol(t2x, Decl(unionsOfTupleTypes1.ts, 41, 7))
|
||||
>t2 : Symbol(t2, Decl(unionsOfTupleTypes1.ts, 25, 19))
|
||||
>x : Symbol(x, Decl(unionsOfTupleTypes1.ts, 25, 43))
|
||||
|
||||
let t30 = t3[0]; // string
|
||||
>t30 : Symbol(t30, Decl(unionsOfTupleTypes1.ts, 42, 7))
|
||||
>t3 : Symbol(t3, Decl(unionsOfTupleTypes1.ts, 25, 27))
|
||||
>0 : Symbol(0)
|
||||
|
||||
let t31 = t3[1]; // number
|
||||
>t31 : Symbol(t31, Decl(unionsOfTupleTypes1.ts, 43, 7))
|
||||
>t3 : Symbol(t3, Decl(unionsOfTupleTypes1.ts, 25, 27))
|
||||
|
||||
let t32 = t3[2]; // number
|
||||
>t32 : Symbol(t32, Decl(unionsOfTupleTypes1.ts, 44, 7))
|
||||
>t3 : Symbol(t3, Decl(unionsOfTupleTypes1.ts, 25, 27))
|
||||
|
||||
let t3x = t3[x]; // string | number
|
||||
>t3x : Symbol(t3x, Decl(unionsOfTupleTypes1.ts, 45, 7))
|
||||
>t3 : Symbol(t3, Decl(unionsOfTupleTypes1.ts, 25, 27))
|
||||
>x : Symbol(x, Decl(unionsOfTupleTypes1.ts, 25, 43))
|
||||
|
||||
let t40 = t4[0]; // string | boolean
|
||||
>t40 : Symbol(t40, Decl(unionsOfTupleTypes1.ts, 46, 7))
|
||||
>t4 : Symbol(t4, Decl(unionsOfTupleTypes1.ts, 25, 35))
|
||||
>0 : Symbol(0)
|
||||
|
||||
let t41 = t4[1]; // number | undefined
|
||||
>t41 : Symbol(t41, Decl(unionsOfTupleTypes1.ts, 47, 7))
|
||||
>t4 : Symbol(t4, Decl(unionsOfTupleTypes1.ts, 25, 35))
|
||||
|
||||
let t42 = t4[2]; // number | undefined
|
||||
>t42 : Symbol(t42, Decl(unionsOfTupleTypes1.ts, 48, 7))
|
||||
>t4 : Symbol(t4, Decl(unionsOfTupleTypes1.ts, 25, 35))
|
||||
|
||||
let t4x = t4[x]; // string | number | boolean
|
||||
>t4x : Symbol(t4x, Decl(unionsOfTupleTypes1.ts, 49, 7))
|
||||
>t4 : Symbol(t4, Decl(unionsOfTupleTypes1.ts, 25, 35))
|
||||
>x : Symbol(x, Decl(unionsOfTupleTypes1.ts, 25, 43))
|
||||
|
||||
t1[1] = 42;
|
||||
>t1 : Symbol(t1, Decl(unionsOfTupleTypes1.ts, 25, 12))
|
||||
>1 : Symbol(1)
|
||||
|
||||
t2[1] = 42;
|
||||
>t2 : Symbol(t2, Decl(unionsOfTupleTypes1.ts, 25, 19))
|
||||
>1 : Symbol(1)
|
||||
|
||||
t3[1] = 42;
|
||||
>t3 : Symbol(t3, Decl(unionsOfTupleTypes1.ts, 25, 27))
|
||||
|
||||
t4[1] = 42;
|
||||
>t4 : Symbol(t4, Decl(unionsOfTupleTypes1.ts, 25, 35))
|
||||
}
|
||||
|
||||
// Repro from #27543
|
||||
|
||||
type Unioned = [string] | [string, number];
|
||||
>Unioned : Symbol(Unioned, Decl(unionsOfTupleTypes1.ts, 54, 1))
|
||||
|
||||
const ex: Unioned = ["hi"] as Unioned;
|
||||
>ex : Symbol(ex, Decl(unionsOfTupleTypes1.ts, 59, 5))
|
||||
>Unioned : Symbol(Unioned, Decl(unionsOfTupleTypes1.ts, 54, 1))
|
||||
>Unioned : Symbol(Unioned, Decl(unionsOfTupleTypes1.ts, 54, 1))
|
||||
|
||||
const [x, y] = ex;
|
||||
>x : Symbol(x, Decl(unionsOfTupleTypes1.ts, 61, 7))
|
||||
>y : Symbol(y, Decl(unionsOfTupleTypes1.ts, 61, 9))
|
||||
>ex : Symbol(ex, Decl(unionsOfTupleTypes1.ts, 59, 5))
|
||||
|
||||
266
tests/baselines/reference/unionsOfTupleTypes1.types
Normal file
266
tests/baselines/reference/unionsOfTupleTypes1.types
Normal file
@ -0,0 +1,266 @@
|
||||
=== tests/cases/conformance/types/tuple/unionsOfTupleTypes1.ts ===
|
||||
type T1 = [string, number];
|
||||
>T1 : [string, number]
|
||||
|
||||
type T2 = [boolean] | [string, number];
|
||||
>T2 : T2
|
||||
|
||||
type T3 = [string, ...number[]];
|
||||
>T3 : [string, ...number[]]
|
||||
|
||||
type T4 = [boolean] | [string, ...number[]];
|
||||
>T4 : T4
|
||||
|
||||
type T10 = T1[0]; // string
|
||||
>T10 : string
|
||||
|
||||
type T11 = T1[1]; // number
|
||||
>T11 : number
|
||||
|
||||
type T12 = T1[2]; // undefined
|
||||
>T12 : undefined
|
||||
|
||||
type T1N = T1[number]; // string | number
|
||||
>T1N : string | number
|
||||
|
||||
type T20 = T2[0]; // string | boolean
|
||||
>T20 : string | boolean
|
||||
|
||||
type T21 = T2[1]; // number | undefined
|
||||
>T21 : number | undefined
|
||||
|
||||
type T22 = T2[2]; // undefined
|
||||
>T22 : undefined
|
||||
|
||||
type T2N = T2[number]; // string | number | boolean
|
||||
>T2N : string | number | boolean
|
||||
|
||||
type T30 = T3[0]; // string
|
||||
>T30 : string
|
||||
|
||||
type T31 = T3[1]; // number
|
||||
>T31 : number
|
||||
|
||||
type T32 = T3[2]; // number
|
||||
>T32 : number
|
||||
|
||||
type T3N = T3[number]; // string | number
|
||||
>T3N : string | number
|
||||
|
||||
type T40 = T4[0]; // string | boolean
|
||||
>T40 : string | boolean
|
||||
|
||||
type T41 = T4[1]; // number | undefined
|
||||
>T41 : number | undefined
|
||||
|
||||
type T42 = T4[2]; // number | undefined
|
||||
>T42 : number | undefined
|
||||
|
||||
type T4N = T4[number]; // string | number | boolean
|
||||
>T4N : string | number | boolean
|
||||
|
||||
function f1(t1: T1, t2: T2, t3: T3, t4: T4, x: number) {
|
||||
>f1 : (t1: [string, number], t2: T2, t3: [string, ...number[]], t4: T4, x: number) => void
|
||||
>t1 : [string, number]
|
||||
>t2 : T2
|
||||
>t3 : [string, ...number[]]
|
||||
>t4 : T4
|
||||
>x : number
|
||||
|
||||
let [d10, d11, d12] = t1; // string, number
|
||||
>d10 : string
|
||||
>d11 : number
|
||||
>d12 : any
|
||||
>t1 : [string, number]
|
||||
|
||||
let [d20, d21, d22] = t2; // string | boolean, number | undefined
|
||||
>d20 : string | boolean
|
||||
>d21 : number | undefined
|
||||
>d22 : any
|
||||
>t2 : T2
|
||||
|
||||
let [d30, d31, d32] = t3; // string, number, number
|
||||
>d30 : string
|
||||
>d31 : number
|
||||
>d32 : number
|
||||
>t3 : [string, ...number[]]
|
||||
|
||||
let [d40, d41, d42] = t4; // string | boolean, number | undefined, number | undefined
|
||||
>d40 : string | boolean
|
||||
>d41 : number | undefined
|
||||
>d42 : number | undefined
|
||||
>t4 : T4
|
||||
|
||||
[d10, d11, d12] = t1;
|
||||
>[d10, d11, d12] = t1 : [string, number]
|
||||
>[d10, d11, d12] : [string, number, any]
|
||||
>d10 : string
|
||||
>d11 : number
|
||||
>d12 : any
|
||||
>t1 : [string, number]
|
||||
|
||||
[d20, d21, d22] = t2;
|
||||
>[d20, d21, d22] = t2 : T2
|
||||
>[d20, d21, d22] : [string | boolean, number | undefined, any]
|
||||
>d20 : string | boolean
|
||||
>d21 : number | undefined
|
||||
>d22 : any
|
||||
>t2 : T2
|
||||
|
||||
[d30, d31, d32] = t3;
|
||||
>[d30, d31, d32] = t3 : [string, ...number[]]
|
||||
>[d30, d31, d32] : [string, number, number]
|
||||
>d30 : string
|
||||
>d31 : number
|
||||
>d32 : number
|
||||
>t3 : [string, ...number[]]
|
||||
|
||||
[d40, d41, d42] = t4;
|
||||
>[d40, d41, d42] = t4 : T4
|
||||
>[d40, d41, d42] : [string | boolean, number | undefined, number | undefined]
|
||||
>d40 : string | boolean
|
||||
>d41 : number | undefined
|
||||
>d42 : number | undefined
|
||||
>t4 : T4
|
||||
|
||||
let t10 = t1[0]; // string
|
||||
>t10 : string
|
||||
>t1[0] : string
|
||||
>t1 : [string, number]
|
||||
>0 : 0
|
||||
|
||||
let t11 = t1[1]; // number
|
||||
>t11 : number
|
||||
>t1[1] : number
|
||||
>t1 : [string, number]
|
||||
>1 : 1
|
||||
|
||||
let t12 = t1[2]; // undefined
|
||||
>t12 : undefined
|
||||
>t1[2] : undefined
|
||||
>t1 : [string, number]
|
||||
>2 : 2
|
||||
|
||||
let t1x = t1[x]; // string | number
|
||||
>t1x : string | number
|
||||
>t1[x] : string | number
|
||||
>t1 : [string, number]
|
||||
>x : number
|
||||
|
||||
let t20 = t2[0]; // string | boolean
|
||||
>t20 : string | boolean
|
||||
>t2[0] : string | boolean
|
||||
>t2 : T2
|
||||
>0 : 0
|
||||
|
||||
let t21 = t2[1]; // number | undefined
|
||||
>t21 : number | undefined
|
||||
>t2[1] : number | undefined
|
||||
>t2 : T2
|
||||
>1 : 1
|
||||
|
||||
let t22 = t2[2]; // undefined
|
||||
>t22 : undefined
|
||||
>t2[2] : undefined
|
||||
>t2 : T2
|
||||
>2 : 2
|
||||
|
||||
let t2x = t2[x]; // string | number | boolean
|
||||
>t2x : string | number | boolean
|
||||
>t2[x] : string | number | boolean
|
||||
>t2 : T2
|
||||
>x : number
|
||||
|
||||
let t30 = t3[0]; // string
|
||||
>t30 : string
|
||||
>t3[0] : string
|
||||
>t3 : [string, ...number[]]
|
||||
>0 : 0
|
||||
|
||||
let t31 = t3[1]; // number
|
||||
>t31 : number
|
||||
>t3[1] : number
|
||||
>t3 : [string, ...number[]]
|
||||
>1 : 1
|
||||
|
||||
let t32 = t3[2]; // number
|
||||
>t32 : number
|
||||
>t3[2] : number
|
||||
>t3 : [string, ...number[]]
|
||||
>2 : 2
|
||||
|
||||
let t3x = t3[x]; // string | number
|
||||
>t3x : string | number
|
||||
>t3[x] : string | number
|
||||
>t3 : [string, ...number[]]
|
||||
>x : number
|
||||
|
||||
let t40 = t4[0]; // string | boolean
|
||||
>t40 : string | boolean
|
||||
>t4[0] : string | boolean
|
||||
>t4 : T4
|
||||
>0 : 0
|
||||
|
||||
let t41 = t4[1]; // number | undefined
|
||||
>t41 : number | undefined
|
||||
>t4[1] : number | undefined
|
||||
>t4 : T4
|
||||
>1 : 1
|
||||
|
||||
let t42 = t4[2]; // number | undefined
|
||||
>t42 : number | undefined
|
||||
>t4[2] : number | undefined
|
||||
>t4 : T4
|
||||
>2 : 2
|
||||
|
||||
let t4x = t4[x]; // string | number | boolean
|
||||
>t4x : string | number | boolean
|
||||
>t4[x] : string | number | boolean
|
||||
>t4 : T4
|
||||
>x : number
|
||||
|
||||
t1[1] = 42;
|
||||
>t1[1] = 42 : 42
|
||||
>t1[1] : number
|
||||
>t1 : [string, number]
|
||||
>1 : 1
|
||||
>42 : 42
|
||||
|
||||
t2[1] = 42;
|
||||
>t2[1] = 42 : 42
|
||||
>t2[1] : number | undefined
|
||||
>t2 : T2
|
||||
>1 : 1
|
||||
>42 : 42
|
||||
|
||||
t3[1] = 42;
|
||||
>t3[1] = 42 : 42
|
||||
>t3[1] : number
|
||||
>t3 : [string, ...number[]]
|
||||
>1 : 1
|
||||
>42 : 42
|
||||
|
||||
t4[1] = 42;
|
||||
>t4[1] = 42 : 42
|
||||
>t4[1] : number | undefined
|
||||
>t4 : T4
|
||||
>1 : 1
|
||||
>42 : 42
|
||||
}
|
||||
|
||||
// Repro from #27543
|
||||
|
||||
type Unioned = [string] | [string, number];
|
||||
>Unioned : Unioned
|
||||
|
||||
const ex: Unioned = ["hi"] as Unioned;
|
||||
>ex : Unioned
|
||||
>["hi"] as Unioned : Unioned
|
||||
>["hi"] : [string]
|
||||
>"hi" : "hi"
|
||||
|
||||
const [x, y] = ex;
|
||||
>x : string
|
||||
>y : number | undefined
|
||||
>ex : Unioned
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user