2014-07-13 01:04:16 +02:00
|
|
|
//// [genericsWithoutTypeParameters1.ts]
|
|
|
|
class C<T> {
|
|
|
|
foo(): T { return null }
|
|
|
|
}
|
|
|
|
|
|
|
|
interface I<T> {
|
|
|
|
bar(): T;
|
|
|
|
}
|
|
|
|
|
|
|
|
var c1: C;
|
|
|
|
var i1: I;
|
|
|
|
var c2: C<I>;
|
|
|
|
var i2: I<C>;
|
|
|
|
|
|
|
|
function foo(x: C, y: I) { }
|
|
|
|
function foo2(x: C<I>, y: I<C>) { }
|
|
|
|
|
|
|
|
var x: { a: C } = { a: new C<number>() };
|
|
|
|
var x2: { a: I } = { a: { bar() { return 1 } } };
|
|
|
|
|
|
|
|
class D<T> {
|
|
|
|
x: C;
|
|
|
|
y: D;
|
|
|
|
}
|
|
|
|
|
|
|
|
interface J<T> {
|
|
|
|
x: I;
|
|
|
|
y: J;
|
|
|
|
}
|
|
|
|
|
|
|
|
class A<T> { }
|
|
|
|
function f<T>(x: T): A {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
//// [genericsWithoutTypeParameters1.js]
|
|
|
|
var C = (function () {
|
|
|
|
function C() {
|
|
|
|
}
|
|
|
|
C.prototype.foo = function () {
|
|
|
|
return null;
|
|
|
|
};
|
|
|
|
return C;
|
|
|
|
})();
|
|
|
|
var c1;
|
|
|
|
var i1;
|
|
|
|
var c2;
|
|
|
|
var i2;
|
2015-02-07 03:45:09 +01:00
|
|
|
function foo(x, y) { }
|
|
|
|
function foo2(x, y) { }
|
2014-07-13 01:04:16 +02:00
|
|
|
var x = { a: new C() };
|
2014-07-23 20:48:29 +02:00
|
|
|
var x2 = { a: { bar: function () {
|
2014-07-13 01:04:16 +02:00
|
|
|
return 1;
|
|
|
|
} } };
|
|
|
|
var D = (function () {
|
|
|
|
function D() {
|
|
|
|
}
|
|
|
|
return D;
|
|
|
|
})();
|
|
|
|
var A = (function () {
|
|
|
|
function A() {
|
|
|
|
}
|
|
|
|
return A;
|
|
|
|
})();
|
|
|
|
function f(x) {
|
|
|
|
return null;
|
|
|
|
}
|