tests/cases/conformance/expressions/typeGuards/typeGuardsWithAny.ts(11,7): error TS2339: Property 'p' does not exist on type 'string'. tests/cases/conformance/expressions/typeGuards/typeGuardsWithAny.ts(18,7): error TS2339: Property 'p' does not exist on type 'number'. tests/cases/conformance/expressions/typeGuards/typeGuardsWithAny.ts(25,7): error TS2339: Property 'p' does not exist on type 'boolean'. ==== tests/cases/conformance/expressions/typeGuards/typeGuardsWithAny.ts (3 errors) ==== var x: any = { p: 0 }; if (x instanceof Object) { x.p; // No error, type any unaffected by instanceof type guard } else { x.p; // No error, type any unaffected by instanceof type guard } if (typeof x === "string") { x.p; // Error, type any narrowed by primitive type check ~ !!! error TS2339: Property 'p' does not exist on type 'string'. } else { x.p; // No error, type unaffected in this branch } if (typeof x === "number") { x.p; // Error, type any narrowed by primitive type check ~ !!! error TS2339: Property 'p' does not exist on type 'number'. } else { x.p; // No error, type unaffected in this branch } if (typeof x === "boolean") { x.p; // Error, type any narrowed by primitive type check ~ !!! error TS2339: Property 'p' does not exist on type 'boolean'. } else { x.p; // No error, type unaffected in this branch } if (typeof x === "object") { x.p; // No error, type any only affected by primitive type check } else { x.p; // No error, type unaffected in this branch }