//// [declFileTypeAnnotationArrayType.ts] class c { } module m { export class c { } export class g { } } class g { } // Just the name function foo(): c[] { return [new c()]; } function foo2() { return [new c()]; } // Qualified name function foo3(): m.c[] { return [new m.c()]; } function foo4() { return m.c; } // Just the name with type arguments function foo5(): g[] { return [new g()]; } function foo6() { return [new g()]; } // Qualified name with type arguments function foo7(): m.g[] { return [new m.g()]; } function foo8() { return [new m.g()]; } // Array of function types function foo9(): (()=>c)[] { return [() => new c()]; } function foo10() { return [() => new c()]; } //// [declFileTypeAnnotationArrayType.js] var c = (function () { function c() { } return c; })(); var m; (function (m) { var c = (function () { function c() { } return c; })(); m.c = c; var g = (function () { function g() { } return g; })(); m.g = g; })(m || (m = {})); var g = (function () { function g() { } return g; })(); // Just the name function foo() { return [new c()]; } function foo2() { return [new c()]; } // Qualified name function foo3() { return [new m.c()]; } function foo4() { return m.c; } // Just the name with type arguments function foo5() { return [new g()]; } function foo6() { return [new g()]; } // Qualified name with type arguments function foo7() { return [new m.g()]; } function foo8() { return [new m.g()]; } // Array of function types function foo9() { return [function () { return new c(); }]; } function foo10() { return [function () { return new c(); }]; } //// [declFileTypeAnnotationArrayType.d.ts] declare class c { } declare module m { class c { } class g { } } declare class g { } declare function foo(): c[]; declare function foo2(): c[]; declare function foo3(): m.c[]; declare function foo4(): typeof m.c; declare function foo5(): g[]; declare function foo6(): g[]; declare function foo7(): m.g[]; declare function foo8(): m.g[]; declare function foo9(): (() => c)[]; declare function foo10(): (() => c)[];