TypeScript/tests/baselines/reference/typeGuardTypeOfUndefined.types
Yui 2627e6f3fc [Transforms] Merge master on 08/05 (#10182)
* Fix #10083 - allowSyntheticDefaultImports alters getExternalModuleMember (#10096)

* Add a helper function `getOrUpdateProperty` to prevent unprotected access to Maps.

* Limit type guards as assertions to incomplete types in loops

* Accept new baselines

* Fix linting error

* [Release-2.0] Fix 9662: Visual Studio 2015 with TS2.0 gives incorrect @types path resolution errors (#9867)

* Change the shape of the shim layer to support getAutomaticTypeDirectives

* Change the key for looking up automatic type-directives

* Update baselines from change look-up name of type-directives

* Add @currentDirectory into the test

* Update baselines

* Fix linting error

* Address PR: fix spelling mistake

* Instead of return path of the type directive names just return type directive names

* Remove unused reference files: these tests produce erros so they will not produce these files (#9233)

* Don't allow properties inherited from Object to be automatically included in TSX attributes

* Port PR #10016 to Master (#10100)

* Treat namespaceExportDeclaration as declaration

* Update baselines

* wip - add tests

* Add tests

* Show "export namespace" for quick-info

* Update baselines from merging
2016-08-05 21:45:13 -07:00

435 lines
8.4 KiB
Plaintext

=== 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" : "undefined"
if (typeof a === "boolean") {
>typeof a === "boolean" : boolean
>typeof a : string
>a : any
>"boolean" : "boolean"
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" : "undefined"
if (typeof a === "boolean") {
>typeof a === "boolean" : boolean
>typeof a : string
>a : undefined
>"boolean" : "boolean"
a;
>a : never
}
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" : "undefined"
>typeof a === "boolean" : boolean
>typeof a : string
>a : any
>"boolean" : "boolean"
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" : "undefined"
>typeof a === "boolean" : boolean
>typeof a : string
>a : any
>"boolean" : "boolean"
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" : "undefined"
if (typeof a === "boolean") {
>typeof a === "boolean" : boolean
>typeof a : string
>a : boolean
>"boolean" : "boolean"
a;
>a : boolean
}
else {
a;
>a : never
}
}
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" : "undefined"
if (typeof a === "boolean") {
>typeof a === "boolean" : boolean
>typeof a : string
>a : boolean | void
>"boolean" : "boolean"
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" : "undefined"
>typeof a === "boolean" : boolean
>typeof a : string
>a : boolean
>"boolean" : "boolean"
a;
>a : boolean | void
}
else {
a;
>a : never
}
}
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" : "undefined"
>typeof a === "boolean" : boolean
>typeof a : string
>a : boolean
>"boolean" : "boolean"
a;
>a : boolean
}
else {
a;
>a : boolean | void
}
}
function test9(a: boolean | number) {
>test9 : (a: number | boolean) => void
>a : number | boolean
if (typeof a !== "undefined") {
>typeof a !== "undefined" : boolean
>typeof a : string
>a : number | boolean
>"undefined" : "undefined"
if (typeof a === "boolean") {
>typeof a === "boolean" : boolean
>typeof a : string
>a : number | boolean
>"boolean" : "boolean"
a;
>a : boolean
}
else {
a;
>a : number
}
}
else {
a;
>a : number | boolean
}
}
function test10(a: boolean | number) {
>test10 : (a: number | boolean) => void
>a : number | boolean
if (typeof a === "undefined") {
>typeof a === "undefined" : boolean
>typeof a : string
>a : number | boolean
>"undefined" : "undefined"
if (typeof a === "boolean") {
>typeof a === "boolean" : boolean
>typeof a : string
>a : number | boolean
>"boolean" : "boolean"
a;
>a : boolean
}
else {
a;
>a : number
}
}
else {
a;
>a : number | boolean
}
}
function test11(a: boolean | number) {
>test11 : (a: number | boolean) => void
>a : number | boolean
if (typeof a === "undefined" || typeof a === "boolean") {
>typeof a === "undefined" || typeof a === "boolean" : boolean
>typeof a === "undefined" : boolean
>typeof a : string
>a : number | boolean
>"undefined" : "undefined"
>typeof a === "boolean" : boolean
>typeof a : string
>a : number | boolean
>"boolean" : "boolean"
a;
>a : number | boolean
}
else {
a;
>a : number
}
}
function test12(a: boolean | number) {
>test12 : (a: number | boolean) => void
>a : number | boolean
if (typeof a !== "undefined" && typeof a === "boolean") {
>typeof a !== "undefined" && typeof a === "boolean" : boolean
>typeof a !== "undefined" : boolean
>typeof a : string
>a : number | boolean
>"undefined" : "undefined"
>typeof a === "boolean" : boolean
>typeof a : string
>a : number | boolean
>"boolean" : "boolean"
a;
>a : boolean
}
else {
a;
>a : number | boolean
}
}
function test13(a: boolean | number | void) {
>test13 : (a: number | boolean | void) => void
>a : number | boolean | void
if (typeof a !== "undefined") {
>typeof a !== "undefined" : boolean
>typeof a : string
>a : number | boolean | void
>"undefined" : "undefined"
if (typeof a === "boolean") {
>typeof a === "boolean" : boolean
>typeof a : string
>a : number | boolean
>"boolean" : "boolean"
a;
>a : boolean
}
else {
a;
>a : number
}
}
else {
a;
>a : number | boolean | void
}
}
function test14(a: boolean | number | void) {
>test14 : (a: number | boolean | void) => void
>a : number | boolean | void
if (typeof a === "undefined") {
>typeof a === "undefined" : boolean
>typeof a : string
>a : number | boolean | void
>"undefined" : "undefined"
if (typeof a === "boolean") {
>typeof a === "boolean" : boolean
>typeof a : string
>a : number | boolean | void
>"boolean" : "boolean"
a;
>a : boolean
}
else {
a;
>a : number | void
}
}
else {
a;
>a : number | boolean
}
}
function test15(a: boolean | number | void) {
>test15 : (a: number | boolean | void) => void
>a : number | boolean | void
if (typeof a === "undefined" || typeof a === "boolean") {
>typeof a === "undefined" || typeof a === "boolean" : boolean
>typeof a === "undefined" : boolean
>typeof a : string
>a : number | boolean | void
>"undefined" : "undefined"
>typeof a === "boolean" : boolean
>typeof a : string
>a : number | boolean
>"boolean" : "boolean"
a;
>a : number | boolean | void
}
else {
a;
>a : number
}
}
function test16(a: boolean | number | void) {
>test16 : (a: number | boolean | void) => void
>a : number | boolean | void
if (typeof a !== "undefined" && typeof a === "boolean") {
>typeof a !== "undefined" && typeof a === "boolean" : boolean
>typeof a !== "undefined" : boolean
>typeof a : string
>a : number | boolean | void
>"undefined" : "undefined"
>typeof a === "boolean" : boolean
>typeof a : string
>a : number | boolean
>"boolean" : "boolean"
a;
>a : boolean
}
else {
a;
>a : number | boolean | void
}
}