234 lines
No EOL
12 KiB
Text
234 lines
No EOL
12 KiB
Text
tests/cases/conformance/expressions/thisKeyword/typeOfThis.ts(14,13): error TS2403: Subsequent variable declarations must have the same type. Variable 't' must be of type 'this', but here has type 'MyTestClass'.
|
|
tests/cases/conformance/expressions/thisKeyword/typeOfThis.ts(18,13): error TS2403: Subsequent variable declarations must have the same type. Variable 'p' must be of type 'this', but here has type 'MyTestClass'.
|
|
tests/cases/conformance/expressions/thisKeyword/typeOfThis.ts(22,9): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
|
|
tests/cases/conformance/expressions/thisKeyword/typeOfThis.ts(24,13): error TS2403: Subsequent variable declarations must have the same type. Variable 'p' must be of type 'this', but here has type 'MyTestClass'.
|
|
tests/cases/conformance/expressions/thisKeyword/typeOfThis.ts(27,9): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
|
|
tests/cases/conformance/expressions/thisKeyword/typeOfThis.ts(29,13): error TS2403: Subsequent variable declarations must have the same type. Variable 'p' must be of type 'this', but here has type 'MyTestClass'.
|
|
tests/cases/conformance/expressions/thisKeyword/typeOfThis.ts(37,13): error TS2403: Subsequent variable declarations must have the same type. Variable 't' must be of type 'this', but here has type 'MyTestClass'.
|
|
tests/cases/conformance/expressions/thisKeyword/typeOfThis.ts(53,16): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
|
|
tests/cases/conformance/expressions/thisKeyword/typeOfThis.ts(61,16): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
|
|
tests/cases/conformance/expressions/thisKeyword/typeOfThis.ts(83,13): error TS2403: Subsequent variable declarations must have the same type. Variable 't' must be of type 'this', but here has type 'MyGenericTestClass<T, U>'.
|
|
tests/cases/conformance/expressions/thisKeyword/typeOfThis.ts(87,13): error TS2403: Subsequent variable declarations must have the same type. Variable 'p' must be of type 'this', but here has type 'MyGenericTestClass<T, U>'.
|
|
tests/cases/conformance/expressions/thisKeyword/typeOfThis.ts(91,9): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
|
|
tests/cases/conformance/expressions/thisKeyword/typeOfThis.ts(93,13): error TS2403: Subsequent variable declarations must have the same type. Variable 'p' must be of type 'this', but here has type 'MyGenericTestClass<T, U>'.
|
|
tests/cases/conformance/expressions/thisKeyword/typeOfThis.ts(96,9): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
|
|
tests/cases/conformance/expressions/thisKeyword/typeOfThis.ts(98,13): error TS2403: Subsequent variable declarations must have the same type. Variable 'p' must be of type 'this', but here has type 'MyGenericTestClass<T, U>'.
|
|
tests/cases/conformance/expressions/thisKeyword/typeOfThis.ts(106,13): error TS2403: Subsequent variable declarations must have the same type. Variable 't' must be of type 'this', but here has type 'MyGenericTestClass<T, U>'.
|
|
tests/cases/conformance/expressions/thisKeyword/typeOfThis.ts(122,16): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
|
|
tests/cases/conformance/expressions/thisKeyword/typeOfThis.ts(130,16): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
|
|
|
|
|
|
==== tests/cases/conformance/expressions/thisKeyword/typeOfThis.ts (18 errors) ====
|
|
class MyTestClass {
|
|
private canary: number;
|
|
static staticCanary: number;
|
|
|
|
constructor() {
|
|
//type of 'this' in constructor body is the class instance type
|
|
var p = this.canary;
|
|
var p: number;
|
|
this.canary = 3;
|
|
}
|
|
|
|
//type of 'this' in member function param list is the class instance type
|
|
memberFunc(t = this) {
|
|
var t: MyTestClass;
|
|
~
|
|
!!! error TS2403: Subsequent variable declarations must have the same type. Variable 't' must be of type 'this', but here has type 'MyTestClass'.
|
|
|
|
//type of 'this' in member function body is the class instance type
|
|
var p = this;
|
|
var p: MyTestClass;
|
|
~
|
|
!!! error TS2403: Subsequent variable declarations must have the same type. Variable 'p' must be of type 'this', but here has type 'MyTestClass'.
|
|
}
|
|
|
|
//type of 'this' in member accessor(get and set) body is the class instance type
|
|
get prop() {
|
|
~~~~
|
|
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
|
|
var p = this;
|
|
var p: MyTestClass;
|
|
~
|
|
!!! error TS2403: Subsequent variable declarations must have the same type. Variable 'p' must be of type 'this', but here has type 'MyTestClass'.
|
|
return this;
|
|
}
|
|
set prop(v) {
|
|
~~~~
|
|
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
|
|
var p = this;
|
|
var p: MyTestClass;
|
|
~
|
|
!!! error TS2403: Subsequent variable declarations must have the same type. Variable 'p' must be of type 'this', but here has type 'MyTestClass'.
|
|
p = v;
|
|
v = p;
|
|
}
|
|
|
|
someFunc = () => {
|
|
//type of 'this' in member variable initializer is the class instance type
|
|
var t = this;
|
|
var t: MyTestClass;
|
|
~
|
|
!!! error TS2403: Subsequent variable declarations must have the same type. Variable 't' must be of type 'this', but here has type 'MyTestClass'.
|
|
};
|
|
|
|
//type of 'this' in static function param list is constructor function type
|
|
static staticFn(t = this) {
|
|
var t: typeof MyTestClass;
|
|
var t = MyTestClass;
|
|
t.staticCanary;
|
|
|
|
//type of 'this' in static function body is constructor function type
|
|
var p = this;
|
|
var p: typeof MyTestClass;
|
|
var p = MyTestClass;
|
|
p.staticCanary;
|
|
}
|
|
|
|
static get staticProp() {
|
|
~~~~~~~~~~
|
|
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
|
|
//type of 'this' in static accessor body is constructor function type
|
|
var p = this;
|
|
var p: typeof MyTestClass;
|
|
var p = MyTestClass;
|
|
p.staticCanary;
|
|
return this;
|
|
}
|
|
static set staticProp(v: typeof MyTestClass) {
|
|
~~~~~~~~~~
|
|
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
|
|
//type of 'this' in static accessor body is constructor function type
|
|
var p = this;
|
|
var p: typeof MyTestClass;
|
|
var p = MyTestClass;
|
|
p.staticCanary;
|
|
}
|
|
}
|
|
|
|
class MyGenericTestClass<T, U> {
|
|
private canary: number;
|
|
static staticCanary: number;
|
|
|
|
constructor() {
|
|
//type of 'this' in constructor body is the class instance type
|
|
var p = this.canary;
|
|
var p: number;
|
|
this.canary = 3;
|
|
}
|
|
|
|
//type of 'this' in member function param list is the class instance type
|
|
memberFunc(t = this) {
|
|
var t: MyGenericTestClass<T, U>;
|
|
~
|
|
!!! error TS2403: Subsequent variable declarations must have the same type. Variable 't' must be of type 'this', but here has type 'MyGenericTestClass<T, U>'.
|
|
|
|
//type of 'this' in member function body is the class instance type
|
|
var p = this;
|
|
var p: MyGenericTestClass<T, U>;
|
|
~
|
|
!!! error TS2403: Subsequent variable declarations must have the same type. Variable 'p' must be of type 'this', but here has type 'MyGenericTestClass<T, U>'.
|
|
}
|
|
|
|
//type of 'this' in member accessor(get and set) body is the class instance type
|
|
get prop() {
|
|
~~~~
|
|
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
|
|
var p = this;
|
|
var p: MyGenericTestClass<T, U>;
|
|
~
|
|
!!! error TS2403: Subsequent variable declarations must have the same type. Variable 'p' must be of type 'this', but here has type 'MyGenericTestClass<T, U>'.
|
|
return this;
|
|
}
|
|
set prop(v) {
|
|
~~~~
|
|
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
|
|
var p = this;
|
|
var p: MyGenericTestClass<T, U>;
|
|
~
|
|
!!! error TS2403: Subsequent variable declarations must have the same type. Variable 'p' must be of type 'this', but here has type 'MyGenericTestClass<T, U>'.
|
|
p = v;
|
|
v = p;
|
|
}
|
|
|
|
someFunc = () => {
|
|
//type of 'this' in member variable initializer is the class instance type
|
|
var t = this;
|
|
var t: MyGenericTestClass<T, U>;
|
|
~
|
|
!!! error TS2403: Subsequent variable declarations must have the same type. Variable 't' must be of type 'this', but here has type 'MyGenericTestClass<T, U>'.
|
|
};
|
|
|
|
//type of 'this' in static function param list is constructor function type
|
|
static staticFn(t = this) {
|
|
var t: typeof MyGenericTestClass;
|
|
var t = MyGenericTestClass;
|
|
t.staticCanary;
|
|
|
|
//type of 'this' in static function body is constructor function type
|
|
var p = this;
|
|
var p: typeof MyGenericTestClass;
|
|
var p = MyGenericTestClass;
|
|
p.staticCanary;
|
|
}
|
|
|
|
static get staticProp() {
|
|
~~~~~~~~~~
|
|
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
|
|
//type of 'this' in static accessor body is constructor function type
|
|
var p = this;
|
|
var p: typeof MyGenericTestClass;
|
|
var p = MyGenericTestClass;
|
|
p.staticCanary;
|
|
return this;
|
|
}
|
|
static set staticProp(v: typeof MyGenericTestClass) {
|
|
~~~~~~~~~~
|
|
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
|
|
//type of 'this' in static accessor body is constructor function type
|
|
var p = this;
|
|
var p: typeof MyGenericTestClass;
|
|
var p = MyGenericTestClass;
|
|
p.staticCanary;
|
|
}
|
|
}
|
|
|
|
//type of 'this' in a function declaration param list is Any
|
|
function fn(s = this) {
|
|
var s: any;
|
|
s.spaaaaaaace = 4;
|
|
|
|
//type of 'this' in a function declaration body is Any
|
|
var t: any;
|
|
var t = this;
|
|
this.spaaaaace = 4;
|
|
}
|
|
|
|
//type of 'this' in a function expression param list list is Any
|
|
var q1 = function (s = this) {
|
|
var s: any;
|
|
s.spaaaaaaace = 4;
|
|
|
|
//type of 'this' in a function expression body is Any
|
|
var t: any;
|
|
var t = this;
|
|
this.spaaaaace = 4;
|
|
}
|
|
|
|
//type of 'this' in a fat arrow expression param list is Any
|
|
var q2 = (s = this) => {
|
|
var s: any;
|
|
s.spaaaaaaace = 4;
|
|
|
|
//type of 'this' in a fat arrow expression body is Any
|
|
var t: any;
|
|
var t = this;
|
|
this.spaaaaace = 4;
|
|
}
|
|
|
|
//type of 'this' in global module is Any
|
|
var t: any;
|
|
var t = this;
|
|
this.spaaaaace = 4;
|
|
|
|
|