49 lines
No EOL
1.7 KiB
Text
49 lines
No EOL
1.7 KiB
Text
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
|
|
}
|
|
|