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
|
=== tests/cases/compiler/typeParameterExtendingUnion1.ts ===
class Animal { run() { } }
>Animal : Animal
>run : () => void
class Cat extends Animal { meow }
>Cat : Cat
>Animal : Animal
>meow : any
class Dog extends Animal { woof }
>Dog : Dog
>Animal : Animal
>woof : any
function run(a: Animal) {
>run : (a: Animal) => void
>a : Animal
>Animal : Animal
a.run();
>a.run() : void
>a.run : () => void
>a : Animal
>run : () => void
}
function f<T extends Cat | Dog>(a: T) {
>f : <T extends Cat | Dog>(a: T) => void
>T : T
>Cat : Cat
>Dog : Dog
>a : T
>T : T
a.run();
>a.run() : void
>a.run : () => void
>a : T
>run : () => void
run(a);
>run(a) : void
>run : (a: Animal) => void
>a : T
}
|