Adding tests
This commit is contained in:
parent
95a314a754
commit
7f63180b64
3 changed files with 208 additions and 0 deletions
77
tests/baselines/reference/TypeGuardWithEnumUnion.js
Normal file
77
tests/baselines/reference/TypeGuardWithEnumUnion.js
Normal file
|
@ -0,0 +1,77 @@
|
|||
//// [TypeGuardWithEnumUnion.ts]
|
||||
enum Color { R, G, B }
|
||||
|
||||
function f1(x: Color | string) {
|
||||
if (typeof x === "number") {
|
||||
var y = x;
|
||||
var y: Color;
|
||||
}
|
||||
else {
|
||||
var z = x;
|
||||
var z: string;
|
||||
}
|
||||
}
|
||||
|
||||
function f2(x: Color | string | string[]) {
|
||||
if (typeof x === "object") {
|
||||
var y = x;
|
||||
var y: string[];
|
||||
}
|
||||
if (typeof x === "number") {
|
||||
var z = x;
|
||||
var z: Color;
|
||||
}
|
||||
else {
|
||||
var w = x;
|
||||
var w: string | string[];
|
||||
}
|
||||
if (typeof x === "string") {
|
||||
var a = x;
|
||||
var a: string;
|
||||
}
|
||||
else {
|
||||
var b = x;
|
||||
var b: Color | string[];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//// [TypeGuardWithEnumUnion.js]
|
||||
var Color;
|
||||
(function (Color) {
|
||||
Color[Color["R"] = 0] = "R";
|
||||
Color[Color["G"] = 1] = "G";
|
||||
Color[Color["B"] = 2] = "B";
|
||||
})(Color || (Color = {}));
|
||||
function f1(x) {
|
||||
if (typeof x === "number") {
|
||||
var y = x;
|
||||
var y;
|
||||
}
|
||||
else {
|
||||
var z = x;
|
||||
var z;
|
||||
}
|
||||
}
|
||||
function f2(x) {
|
||||
if (typeof x === "object") {
|
||||
var y = x;
|
||||
var y;
|
||||
}
|
||||
if (typeof x === "number") {
|
||||
var z = x;
|
||||
var z;
|
||||
}
|
||||
else {
|
||||
var w = x;
|
||||
var w;
|
||||
}
|
||||
if (typeof x === "string") {
|
||||
var a = x;
|
||||
var a;
|
||||
}
|
||||
else {
|
||||
var b = x;
|
||||
var b;
|
||||
}
|
||||
}
|
96
tests/baselines/reference/TypeGuardWithEnumUnion.types
Normal file
96
tests/baselines/reference/TypeGuardWithEnumUnion.types
Normal file
|
@ -0,0 +1,96 @@
|
|||
=== tests/cases/conformance/expressions/typeGuards/TypeGuardWithEnumUnion.ts ===
|
||||
enum Color { R, G, B }
|
||||
>Color : Color
|
||||
>R : Color
|
||||
>G : Color
|
||||
>B : Color
|
||||
|
||||
function f1(x: Color | string) {
|
||||
>f1 : (x: string | Color) => void
|
||||
>x : string | Color
|
||||
>Color : Color
|
||||
|
||||
if (typeof x === "number") {
|
||||
>typeof x === "number" : boolean
|
||||
>typeof x : string
|
||||
>x : string | Color
|
||||
|
||||
var y = x;
|
||||
>y : Color
|
||||
>x : Color
|
||||
|
||||
var y: Color;
|
||||
>y : Color
|
||||
>Color : Color
|
||||
}
|
||||
else {
|
||||
var z = x;
|
||||
>z : string
|
||||
>x : string
|
||||
|
||||
var z: string;
|
||||
>z : string
|
||||
}
|
||||
}
|
||||
|
||||
function f2(x: Color | string | string[]) {
|
||||
>f2 : (x: string | string[] | Color) => void
|
||||
>x : string | string[] | Color
|
||||
>Color : Color
|
||||
|
||||
if (typeof x === "object") {
|
||||
>typeof x === "object" : boolean
|
||||
>typeof x : string
|
||||
>x : string | string[] | Color
|
||||
|
||||
var y = x;
|
||||
>y : string[]
|
||||
>x : string[]
|
||||
|
||||
var y: string[];
|
||||
>y : string[]
|
||||
}
|
||||
if (typeof x === "number") {
|
||||
>typeof x === "number" : boolean
|
||||
>typeof x : string
|
||||
>x : string | string[] | Color
|
||||
|
||||
var z = x;
|
||||
>z : Color
|
||||
>x : Color
|
||||
|
||||
var z: Color;
|
||||
>z : Color
|
||||
>Color : Color
|
||||
}
|
||||
else {
|
||||
var w = x;
|
||||
>w : string | string[]
|
||||
>x : string | string[]
|
||||
|
||||
var w: string | string[];
|
||||
>w : string | string[]
|
||||
}
|
||||
if (typeof x === "string") {
|
||||
>typeof x === "string" : boolean
|
||||
>typeof x : string
|
||||
>x : string | string[] | Color
|
||||
|
||||
var a = x;
|
||||
>a : string
|
||||
>x : string
|
||||
|
||||
var a: string;
|
||||
>a : string
|
||||
}
|
||||
else {
|
||||
var b = x;
|
||||
>b : string[] | Color
|
||||
>x : string[] | Color
|
||||
|
||||
var b: Color | string[];
|
||||
>b : string[] | Color
|
||||
>Color : Color
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
enum Color { R, G, B }
|
||||
|
||||
function f1(x: Color | string) {
|
||||
if (typeof x === "number") {
|
||||
var y = x;
|
||||
var y: Color;
|
||||
}
|
||||
else {
|
||||
var z = x;
|
||||
var z: string;
|
||||
}
|
||||
}
|
||||
|
||||
function f2(x: Color | string | string[]) {
|
||||
if (typeof x === "object") {
|
||||
var y = x;
|
||||
var y: string[];
|
||||
}
|
||||
if (typeof x === "number") {
|
||||
var z = x;
|
||||
var z: Color;
|
||||
}
|
||||
else {
|
||||
var w = x;
|
||||
var w: string | string[];
|
||||
}
|
||||
if (typeof x === "string") {
|
||||
var a = x;
|
||||
var a: string;
|
||||
}
|
||||
else {
|
||||
var b = x;
|
||||
var b: Color | string[];
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue