2016-12-23 19:31:38 +00:00
|
|
|
exports[`test objmap.js 1`] = `
|
|
|
|
|
"declare function promiseAllByKey<O>(o: O): Promise<$ObjMap<O,typeof $await>>;
|
|
|
|
|
declare function keyMirror<O>(o: O): $ObjMapi<O, <K>(k:K) => K>;
|
|
|
|
|
|
|
|
|
|
var o = keyMirror({
|
|
|
|
|
FOO: null,
|
|
|
|
|
BAR: null,
|
|
|
|
|
});
|
|
|
|
|
|
2016-12-27 21:40:04 -05:00
|
|
|
(o.FOO : \'FOO\'); // ok
|
|
|
|
|
(o.FOO : \'BAR\'); // error, \'FOO\' incompatible with \'BAR\'
|
2016-12-23 19:31:38 +00:00
|
|
|
|
|
|
|
|
promiseAllByKey({
|
|
|
|
|
foo: Promise.resolve(0),
|
2016-12-27 21:40:04 -05:00
|
|
|
bar: \'bar\',
|
2016-12-23 19:31:38 +00:00
|
|
|
}).then(o => {
|
|
|
|
|
(o.foo: string); // error, number ~> string
|
2016-12-27 21:40:04 -05:00
|
|
|
(o.bar: \'bar\'); // ok
|
2016-12-23 19:31:38 +00:00
|
|
|
});
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2016-12-27 13:29:31 -05:00
|
|
|
// ok
|
2016-12-27 21:40:04 -05:00
|
|
|
// error, \'FOO\' incompatible with \'BAR\'
|
2016-12-27 13:29:31 -05:00
|
|
|
// error, number ~> string
|
|
|
|
|
// ok
|
2016-12-30 00:01:44 -05:00
|
|
|
declare function promiseAllByKey<O>(o: O): Promise<$ObjMap<O, typeof $await>>;
|
|
|
|
|
declare function keyMirror<O>(o: O): $ObjMapi<O, <K>(k: K) => K>;
|
2016-12-27 21:40:04 -05:00
|
|
|
var o = keyMirror({ FOO: null, BAR: null });
|
2016-12-30 23:01:07 -05:00
|
|
|
|
2016-12-27 21:40:04 -05:00
|
|
|
(o.FOO: \"FOO\");
|
2016-12-30 23:01:07 -05:00
|
|
|
|
2016-12-27 21:40:04 -05:00
|
|
|
(o.FOO: \"BAR\");
|
2016-12-30 23:01:07 -05:00
|
|
|
|
2017-01-04 15:24:10 -05:00
|
|
|
promiseAllByKey({ foo: Promise.resolve(0), bar: \"bar\" }).then(o => {
|
|
|
|
|
(o.foo: string);
|
2017-01-01 20:20:45 -05:00
|
|
|
|
2017-01-04 15:24:10 -05:00
|
|
|
(o.bar: \"bar\");
|
|
|
|
|
});
|
2016-12-23 19:31:38 +00:00
|
|
|
"
|
|
|
|
|
`;
|