Open
Description
TypeScript Version: 2.3 (Playground)
Code
Using strictNullChecks
.
interface Foo {
optional?: number;
}
interface Bar {
foo?: Foo;
}
function test(bar: Bar) {
if (bar.foo!.optional) {
let num: number = bar.foo.optional;
}
if (bar.foo && bar.foo.optional) {
let num: number = bar.foo.optional;
}
}
Expected behavior:
No errors or warnings.
Actual behavior:
num
in firstif
block isnumber | undefined
bar.foo
in firstif
block can beundefined