TypeScript/tests/baselines/reference/typeGuardTypeOfUndefined.types
2016-05-10 10:38:31 -07:00

434 lines
8.3 KiB
Text

=== tests/cases/conformance/expressions/typeGuards/typeGuardTypeOfUndefined.ts ===
// undefined type guard adds no new type information
function test1(a: any) {
>test1 : (a: any) => void
>a : any
if (typeof a !== "undefined") {
>typeof a !== "undefined" : boolean
>typeof a : string
>a : any
>"undefined" : string
if (typeof a === "boolean") {
>typeof a === "boolean" : boolean
>typeof a : string
>a : any
>"boolean" : string
a;
>a : boolean
}
else {
a;
>a : any
}
}
else {
a;
>a : undefined
}
}
function test2(a: any) {
>test2 : (a: any) => void
>a : any
if (typeof a === "undefined") {
>typeof a === "undefined" : boolean
>typeof a : string
>a : any
>"undefined" : string
if (typeof a === "boolean") {
>typeof a === "boolean" : boolean
>typeof a : string
>a : undefined
>"boolean" : string
a;
>a : boolean
}
else {
a;
>a : undefined
}
}
else {
a;
>a : any
}
}
function test3(a: any) {
>test3 : (a: any) => void
>a : any
if (typeof a === "undefined" || typeof a === "boolean") {
>typeof a === "undefined" || typeof a === "boolean" : boolean
>typeof a === "undefined" : boolean
>typeof a : string
>a : any
>"undefined" : string
>typeof a === "boolean" : boolean
>typeof a : string
>a : any
>"boolean" : string
a;
>a : boolean
}
else {
a;
>a : any
}
}
function test4(a: any) {
>test4 : (a: any) => void
>a : any
if (typeof a !== "undefined" && typeof a === "boolean") {
>typeof a !== "undefined" && typeof a === "boolean" : boolean
>typeof a !== "undefined" : boolean
>typeof a : string
>a : any
>"undefined" : string
>typeof a === "boolean" : boolean
>typeof a : string
>a : any
>"boolean" : string
a;
>a : boolean
}
else {
a;
>a : any
}
}
function test5(a: boolean | void) {
>test5 : (a: boolean | void) => void
>a : boolean | void
if (typeof a !== "undefined") {
>typeof a !== "undefined" : boolean
>typeof a : string
>a : boolean | void
>"undefined" : string
if (typeof a === "boolean") {
>typeof a === "boolean" : boolean
>typeof a : string
>a : boolean
>"boolean" : string
a;
>a : boolean
}
else {
a;
>a : void
}
}
else {
a;
>a : boolean | void
}
}
function test6(a: boolean | void) {
>test6 : (a: boolean | void) => void
>a : boolean | void
if (typeof a === "undefined") {
>typeof a === "undefined" : boolean
>typeof a : string
>a : boolean | void
>"undefined" : string
if (typeof a === "boolean") {
>typeof a === "boolean" : boolean
>typeof a : string
>a : boolean | void
>"boolean" : string
a;
>a : boolean
}
else {
a;
>a : void
}
}
else {
a;
>a : boolean
}
}
function test7(a: boolean | void) {
>test7 : (a: boolean | void) => void
>a : boolean | void
if (typeof a === "undefined" || typeof a === "boolean") {
>typeof a === "undefined" || typeof a === "boolean" : boolean
>typeof a === "undefined" : boolean
>typeof a : string
>a : boolean | void
>"undefined" : string
>typeof a === "boolean" : boolean
>typeof a : string
>a : boolean
>"boolean" : string
a;
>a : boolean | void
}
else {
a;
>a : void
}
}
function test8(a: boolean | void) {
>test8 : (a: boolean | void) => void
>a : boolean | void
if (typeof a !== "undefined" && typeof a === "boolean") {
>typeof a !== "undefined" && typeof a === "boolean" : boolean
>typeof a !== "undefined" : boolean
>typeof a : string
>a : boolean | void
>"undefined" : string
>typeof a === "boolean" : boolean
>typeof a : string
>a : boolean
>"boolean" : string
a;
>a : boolean
}
else {
a;
>a : boolean | void
}
}
function test9(a: boolean | number) {
>test9 : (a: boolean | number) => void
>a : boolean | number
if (typeof a !== "undefined") {
>typeof a !== "undefined" : boolean
>typeof a : string
>a : boolean | number
>"undefined" : string
if (typeof a === "boolean") {
>typeof a === "boolean" : boolean
>typeof a : string
>a : boolean | number
>"boolean" : string
a;
>a : boolean
}
else {
a;
>a : number
}
}
else {
a;
>a : boolean | number
}
}
function test10(a: boolean | number) {
>test10 : (a: boolean | number) => void
>a : boolean | number
if (typeof a === "undefined") {
>typeof a === "undefined" : boolean
>typeof a : string
>a : boolean | number
>"undefined" : string
if (typeof a === "boolean") {
>typeof a === "boolean" : boolean
>typeof a : string
>a : boolean | number
>"boolean" : string
a;
>a : boolean
}
else {
a;
>a : number
}
}
else {
a;
>a : boolean | number
}
}
function test11(a: boolean | number) {
>test11 : (a: boolean | number) => void
>a : boolean | number
if (typeof a === "undefined" || typeof a === "boolean") {
>typeof a === "undefined" || typeof a === "boolean" : boolean
>typeof a === "undefined" : boolean
>typeof a : string
>a : boolean | number
>"undefined" : string
>typeof a === "boolean" : boolean
>typeof a : string
>a : boolean | number
>"boolean" : string
a;
>a : boolean | number
}
else {
a;
>a : number
}
}
function test12(a: boolean | number) {
>test12 : (a: boolean | number) => void
>a : boolean | number
if (typeof a !== "undefined" && typeof a === "boolean") {
>typeof a !== "undefined" && typeof a === "boolean" : boolean
>typeof a !== "undefined" : boolean
>typeof a : string
>a : boolean | number
>"undefined" : string
>typeof a === "boolean" : boolean
>typeof a : string
>a : boolean | number
>"boolean" : string
a;
>a : boolean
}
else {
a;
>a : boolean | number
}
}
function test13(a: boolean | number | void) {
>test13 : (a: boolean | number | void) => void
>a : boolean | number | void
if (typeof a !== "undefined") {
>typeof a !== "undefined" : boolean
>typeof a : string
>a : boolean | number | void
>"undefined" : string
if (typeof a === "boolean") {
>typeof a === "boolean" : boolean
>typeof a : string
>a : boolean | number
>"boolean" : string
a;
>a : boolean
}
else {
a;
>a : number
}
}
else {
a;
>a : boolean | number | void
}
}
function test14(a: boolean | number | void) {
>test14 : (a: boolean | number | void) => void
>a : boolean | number | void
if (typeof a === "undefined") {
>typeof a === "undefined" : boolean
>typeof a : string
>a : boolean | number | void
>"undefined" : string
if (typeof a === "boolean") {
>typeof a === "boolean" : boolean
>typeof a : string
>a : boolean | number | void
>"boolean" : string
a;
>a : boolean
}
else {
a;
>a : number | void
}
}
else {
a;
>a : boolean | number
}
}
function test15(a: boolean | number | void) {
>test15 : (a: boolean | number | void) => void
>a : boolean | number | void
if (typeof a === "undefined" || typeof a === "boolean") {
>typeof a === "undefined" || typeof a === "boolean" : boolean
>typeof a === "undefined" : boolean
>typeof a : string
>a : boolean | number | void
>"undefined" : string
>typeof a === "boolean" : boolean
>typeof a : string
>a : boolean | number
>"boolean" : string
a;
>a : boolean | number | void
}
else {
a;
>a : number
}
}
function test16(a: boolean | number | void) {
>test16 : (a: boolean | number | void) => void
>a : boolean | number | void
if (typeof a !== "undefined" && typeof a === "boolean") {
>typeof a !== "undefined" && typeof a === "boolean" : boolean
>typeof a !== "undefined" : boolean
>typeof a : string
>a : boolean | number | void
>"undefined" : string
>typeof a === "boolean" : boolean
>typeof a : string
>a : boolean | number
>"boolean" : string
a;
>a : boolean
}
else {
a;
>a : boolean | number | void
}
}