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 37 38 39 40 41 42 43 44 45 46 47 48 49
|
//// [indirectTypeParameterReferences.ts]
// Repro from #19043
type B = {b: string}
const flowtypes = <A>(b: B) => {
type Combined = A & B
const combined = (fn: (combined: Combined) => void) => null
const literal = (fn: (aPlusB: A & B) => void) => null
return {combined, literal}
}
const {combined, literal} = flowtypes<{a: string}>({b: 'b-value'})
literal(aPlusB => {
aPlusB.b
aPlusB.a
})
combined(comb => {
comb.b
comb.a
})
// Repro from #19091
declare function f<T>(a: T): { a: typeof a };
let n: number = f(2).a;
//// [indirectTypeParameterReferences.js]
// Repro from #19043
var flowtypes = function (b) {
var combined = function (fn) { return null; };
var literal = function (fn) { return null; };
return { combined: combined, literal: literal };
};
var _a = flowtypes({ b: 'b-value' }), combined = _a.combined, literal = _a.literal;
literal(function (aPlusB) {
aPlusB.b;
aPlusB.a;
});
combined(function (comb) {
comb.b;
comb.a;
});
var n = f(2).a;
|