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
|
//// [errorsInGenericTypeReference.ts]
interface IFoo<T> { }
class Foo<T> { }
// in call type arguments
class testClass1 {
method<T>(): void { }
}
var tc1 = new testClass1();
tc1.method<{ x: V }>(); // error: could not find symbol V
// in constructor type arguments
class testClass2<T> {
}
var tc2 = new testClass2<{ x: V }>(); // error: could not find symbol V
// in method return type annotation
class testClass3 {
testMethod1(): Foo<{ x: V }> { return null; } // error: could not find symbol V
static testMethod2(): Foo<{ x: V }> { return null } // error: could not find symbol V
set a(value: Foo<{ x: V }>) { } // error: could not find symbol V
property: Foo<{ x: V }>; // error: could not find symbol V
}
// in function return type annotation
function testFunction1(): Foo<{ x: V }> { return null; } // error: could not find symbol V
// in paramter types
function testFunction2(p: Foo<{ x: V }>) { }// error: could not find symbol V
// in var type annotation
var f: Foo<{ x: V }>; // error: could not find symbol V
// in constraints
class testClass4<T extends { x: V }> { } // error: could not find symbol V
interface testClass5<T extends Foo<{ x: V }>> { } // error: could not find symbol V
class testClass6<T> {
method<M extends { x: V }>(): void { } // error: could not find symbol V
}
interface testInterface1 {
new <M extends { x: V }>(a: M); // error: could not find symbol V
}
// in extends clause
class testClass7 extends Foo<{ x: V }> { } // error: could not find symbol V
// in implements clause
class testClass8 implements IFoo<{ x: V }> { } // error: could not find symbol V
// in signatures
interface testInterface2 {
new (a: Foo<{ x: V }>): Foo<{ x: V }>; //2x: error: could not find symbol V
[x: string]: Foo<{ x: V }>; // error: could not find symbol V
method(a: Foo<{ x: V }>): Foo<{ x: V }>; //2x: error: could not find symbol V
property: Foo<{ x: V }>; // error: could not find symbol V
}
//// [errorsInGenericTypeReference.js]
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
var Foo = (function () {
function Foo() {
}
return Foo;
}());
// in call type arguments
var testClass1 = (function () {
function testClass1() {
}
testClass1.prototype.method = function () { };
return testClass1;
}());
var tc1 = new testClass1();
tc1.method(); // error: could not find symbol V
// in constructor type arguments
var testClass2 = (function () {
function testClass2() {
}
return testClass2;
}());
var tc2 = new testClass2(); // error: could not find symbol V
// in method return type annotation
var testClass3 = (function () {
function testClass3() {
}
testClass3.prototype.testMethod1 = function () { return null; }; // error: could not find symbol V
testClass3.testMethod2 = function () { return null; }; // error: could not find symbol V
Object.defineProperty(testClass3.prototype, "a", {
set: function (value) { } // error: could not find symbol V
,
enumerable: true,
configurable: true
});
return testClass3;
}());
// in function return type annotation
function testFunction1() { return null; } // error: could not find symbol V
// in paramter types
function testFunction2(p) { } // error: could not find symbol V
// in var type annotation
var f; // error: could not find symbol V
// in constraints
var testClass4 = (function () {
function testClass4() {
}
return testClass4;
}()); // error: could not find symbol V
var testClass6 = (function () {
function testClass6() {
}
testClass6.prototype.method = function () { }; // error: could not find symbol V
return testClass6;
}());
// in extends clause
var testClass7 = (function (_super) {
__extends(testClass7, _super);
function testClass7() {
return _super !== null && _super.apply(this, arguments) || this;
}
return testClass7;
}(Foo)); // error: could not find symbol V
// in implements clause
var testClass8 = (function () {
function testClass8() {
}
return testClass8;
}()); // error: could not find symbol V
|