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 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185
|
tests/cases/conformance/types/witness/witness.ts(8,21): error TS2372: Parameter 'pInit' cannot be referenced in its initializer.
tests/cases/conformance/types/witness/witness.ts(32,12): error TS2695: Left side of comma operator is unused and has no side effects.
tests/cases/conformance/types/witness/witness.ts(33,5): error TS2403: Subsequent variable declarations must have the same type. Variable 'co1' must be of type 'any', but here has type 'number'.
tests/cases/conformance/types/witness/witness.ts(34,12): error TS2695: Left side of comma operator is unused and has no side effects.
tests/cases/conformance/types/witness/witness.ts(34,12): error TS2695: Left side of comma operator is unused and has no side effects.
tests/cases/conformance/types/witness/witness.ts(36,12): error TS2695: Left side of comma operator is unused and has no side effects.
tests/cases/conformance/types/witness/witness.ts(36,12): error TS2695: Left side of comma operator is unused and has no side effects.
tests/cases/conformance/types/witness/witness.ts(36,12): error TS2695: Left side of comma operator is unused and has no side effects.
tests/cases/conformance/types/witness/witness.ts(37,5): error TS2403: Subsequent variable declarations must have the same type. Variable 'co3' must be of type 'any', but here has type 'number'.
tests/cases/conformance/types/witness/witness.ts(41,5): error TS2403: Subsequent variable declarations must have the same type. Variable 'as1' must be of type 'any', but here has type 'number'.
tests/cases/conformance/types/witness/witness.ts(43,5): error TS2403: Subsequent variable declarations must have the same type. Variable 'as2' must be of type 'any', but here has type 'number'.
tests/cases/conformance/types/witness/witness.ts(47,5): error TS2403: Subsequent variable declarations must have the same type. Variable 'cnd1' must be of type 'any', but here has type 'number'.
tests/cases/conformance/types/witness/witness.ts(61,5): error TS2403: Subsequent variable declarations must have the same type. Variable 'and1' must be of type 'any', but here has type 'string'.
tests/cases/conformance/types/witness/witness.ts(114,5): error TS2403: Subsequent variable declarations must have the same type. Variable 'propAcc1' must be of type 'any', but here has type '{ m: any; }'.
==== tests/cases/conformance/types/witness/witness.ts (14 errors) ====
// Initializers
var varInit = varInit; // any
var pInit: any;
function fn(pInit = pInit) {
~~~~~
!!! error TS2372: Parameter 'pInit' cannot be referenced in its initializer.
var pInit: any;
}
class InitClass {
x = this.x;
fn() {
var y = this.x;
var y: any;
}
}
// Return type
function fnReturn1() {
return fnReturn1();
}
var a: any;
var a = fnReturn1();
function fnReturn2() {
return fnReturn2;
}
var fnr2: () => any = fnReturn2();
// Comma
var co1 = (co1, 3);
~~~
!!! error TS2695: Left side of comma operator is unused and has no side effects.
var co1: number;
~~~
!!! error TS2403: Subsequent variable declarations must have the same type. Variable 'co1' must be of type 'any', but here has type 'number'.
var co2 = (3, 4, co2);
~
!!! error TS2695: Left side of comma operator is unused and has no side effects.
~~~~
!!! error TS2695: Left side of comma operator is unused and has no side effects.
var co2: any;
var co3 = (co1, co2, co3, co1);
~~~
!!! error TS2695: Left side of comma operator is unused and has no side effects.
~~~~~~~~
!!! error TS2695: Left side of comma operator is unused and has no side effects.
~~~~~~~~~~~~~
!!! error TS2695: Left side of comma operator is unused and has no side effects.
var co3: number;
~~~
!!! error TS2403: Subsequent variable declarations must have the same type. Variable 'co3' must be of type 'any', but here has type 'number'.
// Assignment
var as1 = (as1 = 2);
var as1: number;
~~~
!!! error TS2403: Subsequent variable declarations must have the same type. Variable 'as1' must be of type 'any', but here has type 'number'.
var as2 = (as2 = as2 = 2);
var as2: number;
~~~
!!! error TS2403: Subsequent variable declarations must have the same type. Variable 'as2' must be of type 'any', but here has type 'number'.
// Conditional
var cnd1 = cnd1 ? 0 : 1;
var cnd1: number;
~~~~
!!! error TS2403: Subsequent variable declarations must have the same type. Variable 'cnd1' must be of type 'any', but here has type 'number'.
var cnd2 = cnd1 ? cnd1 ? '' : "" : '';
var cnd2: string;
// ||
var or1 = or1 || '';
var or1: any;
var or2 = '' || or2;
var or2: any;
var or3 = or3 || or3;
var or3: any;
// &&
var and1 = and1 && '';
var and1: string;
~~~~
!!! error TS2403: Subsequent variable declarations must have the same type. Variable 'and1' must be of type 'any', but here has type 'string'.
var and2 = '' && and2;
var and2: any;
var and3 = and3 && and3;
var and3: any;
// function call return type
function fnCall() {
return fnCall();
}
var fnCallResult = fnCall();
var fnCallResult: any;
// Call argument
function fnArg1(x: typeof fnArg1, y: number) {
var x: (n: typeof fnArg1, m: number) => void;
fnArg1(fnArg1, 0);
}
function overload1(x: (n: string) => string): string;
function overload1(x: (n: number) => number): number;
function overload1(x: (n: any) => any): any;
function overload1() { return undefined; };
function fnArg2() {
return overload1(fnArg2);
}
var t = fnArg2(); // t: should be 'any', but is 'string'
// New operator
class C {
fn1() {
return new (this.fn1())();
}
fn2() {
return new (this.fn2());
}
fn3() {
var a: new(x) => number;
return new a(this.fn3);
}
}
function fn5() {
var a: new (x) => number;
return new a(fn5);
}
var fn5r = fn5(); // fn5r: should be 'any', but is 'number'
// Property access
var propAcc1 = {
m: propAcc1.m
};
var propAcc1: { m: any; }
~~~~~~~~
!!! error TS2403: Subsequent variable declarations must have the same type. Variable 'propAcc1' must be of type 'any', but here has type '{ m: any; }'.
// Property access of module member
module M2 {
export var x = M2.x;
var y = x;
var y: any;
}
// Property access of class instance type
class C2 {
n = this.n; // n: any
}
var c2inst = new C2().n;
var c2inst: any;
// Constructor function property access
class C3 {
static q = C3.q;
}
var qq = C3.q;
var qq: any;
// Parentheses - tested a bunch above
|