//// [genericClassesInModule2.ts] export class A{ constructor( public callback: (self: A) => void) { var child = new B(this); } AAA( callback: (self: A) => void) { var child = new B(this); } } export interface C{ child: B; (self: C): void; new(callback: (self: C) => void) } export class B { constructor(public parent: T2) { } } //// [genericClassesInModule2.js] define(["require", "exports"], function (require, exports) { var A = (function () { function A(callback) { this.callback = callback; var child = new B(this); } A.prototype.AAA = function (callback) { var child = new B(this); }; return A; })(); exports.A = A; var B = (function () { function B(parent) { this.parent = parent; } return B; })(); exports.B = B; });