2016-12-23 22:31:38 +03:00
|
|
|
exports[`test test.js 1`] = `
|
|
|
|
"var o1 = { x: 0 };
|
|
|
|
var s1: string = o1.y; // error
|
|
|
|
|
|
|
|
var o2: { x: number; y?: string; } = { x: 0 };
|
2016-12-30 19:56:42 +03:00
|
|
|
var s2: string = o2.y || \"\"; // ok
|
2016-12-23 22:31:38 +03:00
|
|
|
|
|
|
|
var o3: { x: number; y?: string; } = ({ x: 0, y: 0 }: { x: number; });
|
2016-12-30 19:56:42 +03:00
|
|
|
var s3: string = o3.y || \"\"; // error
|
2016-12-23 22:31:38 +03:00
|
|
|
|
|
|
|
var o4: { x: number; y?: string; } = ({ x: 0 }: { x: number; [_:any]:any});
|
2016-12-30 19:56:42 +03:00
|
|
|
var s4: string = o4.y || \"\"; // ok
|
2016-12-23 22:31:38 +03:00
|
|
|
|
|
|
|
var o5 = { x: 0, ...{} };
|
|
|
|
var s5: string = o5.y; // ok (spreads make object types extensible)
|
|
|
|
|
|
|
|
var o6: { x: number; [_:any]:any } = { x: 0 };
|
|
|
|
var s6: string = o6.y; // ok (indexers make object types extensible)
|
|
|
|
|
|
|
|
var o7: { x: number; y?: string; } = ({ x: 0, y: 0 }: { x: number; [_:any]:number}); // error
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2016-12-28 05:40:04 +03:00
|
|
|
var o1 = { x: 0 };
|
2016-12-27 21:29:31 +03:00
|
|
|
var s1: string = o1.y;
|
2017-01-10 05:49:06 +03:00
|
|
|
// error
|
2017-01-05 01:26:44 +03:00
|
|
|
var o2: { x: number, y?: string } = { x: 0 };
|
2016-12-30 19:56:42 +03:00
|
|
|
var s2: string = o2.y || \"\";
|
2017-01-10 05:49:06 +03:00
|
|
|
// ok
|
2017-01-05 01:26:44 +03:00
|
|
|
var o3: { x: number, y?: string } = ({ x: 0, y: 0 }: { x: number });
|
2016-12-30 19:56:42 +03:00
|
|
|
var s3: string = o3.y || \"\";
|
2017-01-10 05:49:06 +03:00
|
|
|
// error
|
2017-01-05 01:26:44 +03:00
|
|
|
var o4: { x: number, y?: string } = ({ x: 0 }: { [_: any]: any, x: number });
|
2016-12-30 19:56:42 +03:00
|
|
|
var s4: string = o4.y || \"\";
|
2017-01-10 05:49:06 +03:00
|
|
|
// ok
|
2016-12-28 05:40:04 +03:00
|
|
|
var o5 = { x: 0, ...{} };
|
2016-12-27 21:29:31 +03:00
|
|
|
var s5: string = o5.y;
|
2017-01-10 05:49:06 +03:00
|
|
|
// ok (spreads make object types extensible)
|
2017-01-05 01:26:44 +03:00
|
|
|
var o6: { [_: any]: any, x: number } = { x: 0 };
|
2016-12-27 21:29:31 +03:00
|
|
|
var s6: string = o6.y;
|
2017-01-10 05:49:06 +03:00
|
|
|
// ok (indexers make object types extensible)
|
2017-01-05 01:26:44 +03:00
|
|
|
var o7: { x: number, y?: string } = ({ x: 0, y: 0 }: {
|
|
|
|
[_: any]: number,
|
2016-12-28 05:40:04 +03:00
|
|
|
x: number
|
2017-01-10 05:49:06 +03:00
|
|
|
}); // error"
|
2016-12-23 22:31:38 +03:00
|
|
|
`;
|