13 lines
308 B
JavaScript
13 lines
308 B
JavaScript
var x: { } = { foo: 0 };
|
|
var y: { foo?: string } = x; // OK in TypeScript, not OK in Flow
|
|
|
|
var z: string = y.foo || "";
|
|
|
|
var o = { };
|
|
y = o; // OK; we know that narrowing could not have happened
|
|
o.foo = 0; // future widening is constrained
|
|
|
|
function bar(config: { foo?: number }) {}
|
|
bar({});
|
|
bar({foo: ""});
|