//// [objectLitArrayDeclNoNew.ts] declare var console; "use strict"; module Test { export interface IState { } export interface IToken { } export interface ILineTokens { tokens: IToken[]; endState: IState; } export class Gar { public moo: number = 0; } export function bug(): ILineTokens { var state:IState= null; return { tokens: Gar[],//IToken[], // Missing new. Correct syntax is: tokens: new IToken[] endState: state }; } } } //// [objectLitArrayDeclNoNew.js] "use strict"; var Test; (function (Test) { var Gar = (function () { function Gar() { this.moo = 0; } return Gar; })(); Test.Gar = Gar; function bug() { var state = null; return { tokens: Gar[], endState: state }; } Test.bug = bug; })(Test || (Test = {}));