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/typeParameterExtendingUnion2.ts ===
class Animal { run() { } }
>Animal : Symbol(Animal, Decl(typeParameterExtendingUnion2.ts, 0, 0))
>run : Symbol(Animal.run, Decl(typeParameterExtendingUnion2.ts, 0, 14))
class Cat extends Animal { meow }
>Cat : Symbol(Cat, Decl(typeParameterExtendingUnion2.ts, 0, 26))
>Animal : Symbol(Animal, Decl(typeParameterExtendingUnion2.ts, 0, 0))
>meow : Symbol(Cat.meow, Decl(typeParameterExtendingUnion2.ts, 1, 26))
class Dog extends Animal { woof }
>Dog : Symbol(Dog, Decl(typeParameterExtendingUnion2.ts, 1, 33))
>Animal : Symbol(Animal, Decl(typeParameterExtendingUnion2.ts, 0, 0))
>woof : Symbol(Dog.woof, Decl(typeParameterExtendingUnion2.ts, 2, 26))
function run(a: Cat | Dog) {
>run : Symbol(run, Decl(typeParameterExtendingUnion2.ts, 2, 33))
>a : Symbol(a, Decl(typeParameterExtendingUnion2.ts, 4, 13))
>Cat : Symbol(Cat, Decl(typeParameterExtendingUnion2.ts, 0, 26))
>Dog : Symbol(Dog, Decl(typeParameterExtendingUnion2.ts, 1, 33))
a.run();
>a.run : Symbol(Animal.run, Decl(typeParameterExtendingUnion2.ts, 0, 14), Decl(typeParameterExtendingUnion2.ts, 0, 14))
>a : Symbol(a, Decl(typeParameterExtendingUnion2.ts, 4, 13))
>run : Symbol(Animal.run, Decl(typeParameterExtendingUnion2.ts, 0, 14), Decl(typeParameterExtendingUnion2.ts, 0, 14))
}
function f<T extends Cat | Dog>(a: T) {
>f : Symbol(f, Decl(typeParameterExtendingUnion2.ts, 6, 1))
>T : Symbol(T, Decl(typeParameterExtendingUnion2.ts, 8, 11))
>Cat : Symbol(Cat, Decl(typeParameterExtendingUnion2.ts, 0, 26))
>Dog : Symbol(Dog, Decl(typeParameterExtendingUnion2.ts, 1, 33))
>a : Symbol(a, Decl(typeParameterExtendingUnion2.ts, 8, 32))
>T : Symbol(T, Decl(typeParameterExtendingUnion2.ts, 8, 11))
a.run();
>a.run : Symbol(Animal.run, Decl(typeParameterExtendingUnion2.ts, 0, 14), Decl(typeParameterExtendingUnion2.ts, 0, 14))
>a : Symbol(a, Decl(typeParameterExtendingUnion2.ts, 8, 32))
>run : Symbol(Animal.run, Decl(typeParameterExtendingUnion2.ts, 0, 14), Decl(typeParameterExtendingUnion2.ts, 0, 14))
run(a);
>run : Symbol(run, Decl(typeParameterExtendingUnion2.ts, 2, 33))
>a : Symbol(a, Decl(typeParameterExtendingUnion2.ts, 8, 32))
}
|