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
|
//// [unwitnessedTypeParameterVariance.ts]
// Repros from #33872
export interface CalcObj<O> {
read: (origin: O) => CalcValue<O>;
}
export type CalcValue<O> = CalcObj<O>;
function foo<O>() {
const unk: CalcObj<unknown> = { read: (origin: unknown) => unk }
const x: CalcObj<O> = unk;
}
type A<T> = B<T>;
interface B<T> {
prop: A<T>;
}
declare let a: A<number>;
declare let b: A<3>;
b = a;
//// [unwitnessedTypeParameterVariance.js]
"use strict";
// Repros from #33872
exports.__esModule = true;
function foo() {
var unk = { read: function (origin) { return unk; } };
var x = unk;
}
b = a;
|