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
|
=== tests/cases/compiler/typeParameterDiamond2.ts ===
function diamondTop<Top>() {
>diamondTop : <Top>() => void
function diamondMiddle<T extends Top, U>() {
>diamondMiddle : <T extends Top, U>() => void
function diamondBottom<Bottom extends T | U>() {
>diamondBottom : <Bottom extends T | U>() => void
var top: Top;
>top : Top
var middle: T | U;
>middle : T | U
var bottom: Bottom;
>bottom : Bottom
top = middle;
>top = middle : T | U
>top : Top
>middle : T | U
middle = bottom;
>middle = bottom : Bottom
>middle : T | U
>bottom : Bottom
top = bottom;
>top = bottom : Bottom
>top : Top
>bottom : Bottom
}
}
}
|