1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
//// [multipleInferenceContexts.ts]
type ConstructorOptions<Data> =
& ComponentOptionsProperties<Data>
& ThisType<Instance<Data>>;
interface ComponentOptionsProperties<Data> {
data: Data;
render(): unknown;
}
interface Instance<Data> {
get<K extends keyof Data>(name: K): unknown;
}
declare var Moon: {
<Data>(options?: ConstructorOptions<Data>): Instance<Data>;
};
const r2 = Moon({
data: { msg: "" },
render() {
const h = (x: unknown) => x;
return h(this.get("msg"));
},
});
//// [multipleInferenceContexts.js]
"use strict";
var r2 = Moon({
data: { msg: "" },
render: function () {
var h = function (x) { return x; };
return h(this.get("msg"));
},
});
|