//// [returnTypeTypeArguments.ts] class One{ value: T; } class Two{ value: T; id: U; } class Three{ value: T; id: U; name: V; } function A1(): One { return null; } function A2(): Two { return null; } function A3(): Three { return null; } function B1(): Two { return null; } function B2(): Three { return null; } function B3(): Three { return null; } class C { A1(): One { return null; } A2(): Two { return null; } A3(): Three { return null; } B1(): Two { return null; } B2(): Three { return null; } B3(): Three { return null; } } class D { A2(): Two { return null; } A3(): Three { return null; } B1(): Two { return null; } B2(): Three { return null; } B3(): Three { return null; } } interface I { value: T; } class Y { value: T; } class X { p1: () => X; p2: { [idx: number]: X } p3: X[] p4: I p5: X p6: () => Y; p7: { [idx: number]: Y } p8: Y[] p9: I pa: Y } declare var a: { p1: () => X; p2: { [idx: number]: X } p3: X[] p4: I p5: X p6: () => Y; p7: { [idx: number]: Y } p8: Y[] p9: I pa: Y }; //// [returnTypeTypeArguments.js] var One = (function () { function One() { } return One; })(); var Two = (function () { function Two() { } return Two; })(); var Three = (function () { function Three() { } return Three; })(); function A1() { return null; } function A2() { return null; } function A3() { return null; } function B1() { return null; } function B2() { return null; } function B3() { return null; } var C = (function () { function C() { } C.prototype.A1 = function () { return null; }; C.prototype.A2 = function () { return null; }; C.prototype.A3 = function () { return null; }; C.prototype.B1 = function () { return null; }; C.prototype.B2 = function () { return null; }; C.prototype.B3 = function () { return null; }; return C; })(); var D = (function () { function D() { } D.prototype.A2 = function () { return null; }; D.prototype.A3 = function () { return null; }; D.prototype.B1 = function () { return null; }; D.prototype.B2 = function () { return null; }; D.prototype.B3 = function () { return null; }; return D; })(); var Y = (function () { function Y() { } return Y; })(); var X = (function () { function X() { } return X; })();