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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
=== tests/cases/compiler/interfaceClassMerging2.ts ===
interface Foo {
interfaceFooMethod(): this;
>interfaceFooMethod : () => this
interfaceFooProperty: this;
>interfaceFooProperty : this
}
class Foo {
>Foo : Foo
classFooProperty: this;
>classFooProperty : this
classFooMethod(): this {
>classFooMethod : () => this
return this;
>this : this
}
}
interface Bar {
interfaceBarMethod(): this;
>interfaceBarMethod : () => this
interfaceBarProperty: this;
>interfaceBarProperty : this
}
class Bar extends Foo {
>Bar : Bar
>Foo : Foo
classBarProperty: this;
>classBarProperty : this
classBarMethod(): this {
>classBarMethod : () => this
return this;
>this : this
}
}
var bar = new Bar();
>bar : Bar
>new Bar() : Bar
>Bar : typeof Bar
bar.interfaceBarMethod().interfaceFooMethod().classBarMethod().classFooMethod();
>bar.interfaceBarMethod().interfaceFooMethod().classBarMethod().classFooMethod() : Bar
>bar.interfaceBarMethod().interfaceFooMethod().classBarMethod().classFooMethod : () => Bar
>bar.interfaceBarMethod().interfaceFooMethod().classBarMethod() : Bar
>bar.interfaceBarMethod().interfaceFooMethod().classBarMethod : () => Bar
>bar.interfaceBarMethod().interfaceFooMethod() : Bar
>bar.interfaceBarMethod().interfaceFooMethod : () => Bar
>bar.interfaceBarMethod() : Bar
>bar.interfaceBarMethod : () => Bar
>bar : Bar
>interfaceBarMethod : () => Bar
>interfaceFooMethod : () => Bar
>classBarMethod : () => Bar
>classFooMethod : () => Bar
var foo = new Foo();
>foo : Foo
>new Foo() : Foo
>Foo : typeof Foo
foo = bar;
>foo = bar : Bar
>foo : Foo
>bar : Bar
|