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 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
|
=== tests/cases/conformance/types/thisType/declarationFiles.ts ===
class C1 {
>C1 : C1
x: this;
>x : this
f(x: this): this { return undefined; }
>f : (x: this) => this
>x : this
>undefined : undefined
constructor(x: this) { }
>x : any
}
class C2 {
>C2 : C2
[x: string]: this;
>x : string
}
interface Foo<T> {
x: T;
>x : T
y: this;
>y : this
}
class C3 {
>C3 : C3
a: this[];
>a : this[]
b: [this, this];
>b : [this, this]
c: this | Date;
>c : this | Date
d: this & Date;
>d : this & Date
e: (((this)));
>e : this
f: (x: this) => this;
>f : (x: this) => this
>x : this
g: new (x: this) => this;
>g : new (x: this) => this
>x : this
h: Foo<this>;
>h : Foo<this>
i: Foo<this | (() => this)>;
>i : Foo<this | (() => this)>
j: (x: any) => x is this;
>j : (x: any) => x is this
>x : any
}
class C4 {
>C4 : C4
x1 = { a: this };
>x1 : { a: this; }
>{ a: this } : { a: this; }
>a : this
>this : this
x2 = [this];
>x2 : this[]
>[this] : this[]
>this : this
x3 = [{ a: this }];
>x3 : { a: this; }[]
>[{ a: this }] : { a: this; }[]
>{ a: this } : { a: this; }
>a : this
>this : this
x4 = () => this;
>x4 : () => this
>() => this : () => this
>this : this
f1() {
>f1 : () => { a: this; }
return { a: this };
>{ a: this } : { a: this; }
>a : this
>this : this
}
f2() {
>f2 : () => this[]
return [this];
>[this] : this[]
>this : this
}
f3() {
>f3 : () => { a: this; }[]
return [{ a: this }];
>[{ a: this }] : { a: this; }[]
>{ a: this } : { a: this; }
>a : this
>this : this
}
f4() {
>f4 : () => () => this
return () => this;
>() => this : () => this
>this : this
}
}
|