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
|
=== tests/cases/compiler/typeParameterDiamond2.ts ===
function diamondTop<Top>() {
>diamondTop : Symbol(diamondTop, Decl(typeParameterDiamond2.ts, 0, 0))
>Top : Symbol(Top, Decl(typeParameterDiamond2.ts, 0, 20))
function diamondMiddle<T extends Top, U>() {
>diamondMiddle : Symbol(diamondMiddle, Decl(typeParameterDiamond2.ts, 0, 28))
>T : Symbol(T, Decl(typeParameterDiamond2.ts, 1, 27))
>Top : Symbol(Top, Decl(typeParameterDiamond2.ts, 0, 20))
>U : Symbol(U, Decl(typeParameterDiamond2.ts, 1, 41))
function diamondBottom<Bottom extends T | U>() {
>diamondBottom : Symbol(diamondBottom, Decl(typeParameterDiamond2.ts, 1, 48))
>Bottom : Symbol(Bottom, Decl(typeParameterDiamond2.ts, 2, 31))
>T : Symbol(T, Decl(typeParameterDiamond2.ts, 1, 27))
>U : Symbol(U, Decl(typeParameterDiamond2.ts, 1, 41))
var top: Top;
>top : Symbol(top, Decl(typeParameterDiamond2.ts, 3, 15))
>Top : Symbol(Top, Decl(typeParameterDiamond2.ts, 0, 20))
var middle: T | U;
>middle : Symbol(middle, Decl(typeParameterDiamond2.ts, 4, 15))
>T : Symbol(T, Decl(typeParameterDiamond2.ts, 1, 27))
>U : Symbol(U, Decl(typeParameterDiamond2.ts, 1, 41))
var bottom: Bottom;
>bottom : Symbol(bottom, Decl(typeParameterDiamond2.ts, 5, 15))
>Bottom : Symbol(Bottom, Decl(typeParameterDiamond2.ts, 2, 31))
top = middle;
>top : Symbol(top, Decl(typeParameterDiamond2.ts, 3, 15))
>middle : Symbol(middle, Decl(typeParameterDiamond2.ts, 4, 15))
middle = bottom;
>middle : Symbol(middle, Decl(typeParameterDiamond2.ts, 4, 15))
>bottom : Symbol(bottom, Decl(typeParameterDiamond2.ts, 5, 15))
top = bottom;
>top : Symbol(top, Decl(typeParameterDiamond2.ts, 3, 15))
>bottom : Symbol(bottom, Decl(typeParameterDiamond2.ts, 5, 15))
}
}
}
|