TypeScript/tests/baselines/reference/inferenceLimit.js
2016-03-21 15:15:41 -07:00

83 lines
2.3 KiB
TypeScript

//// [tests/cases/compiler/inferenceLimit.ts] ////
//// [file1.ts]
"use strict";
import * as MyModule from "./mymodule";
export class BrokenClass {
constructor() {}
public brokenMethod(field: string, value: string) {
return new Promise<Array<MyModule.MyModel>>((resolve, reject) => {
let result: Array<MyModule.MyModel> = [];
let populateItems = (order) => {
return new Promise((resolve, reject) => {
this.doStuff(order.id)
.then((items) => {
order.items = items;
resolve(order);
});
});
};
return Promise.all(result.map(populateItems))
.then((orders: Array<MyModule.MyModel>) => {
resolve(orders);
});
});
}
public async doStuff(id: number) {
return;
}
}
//// [mymodule.ts]
export interface MyModel {
id: number;
}
//// [mymodule.js]
"use strict";
//// [file1.js]
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator.throw(value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments)).next());
});
};
class BrokenClass {
constructor() {
}
brokenMethod(field, value) {
return new Promise((resolve, reject) => {
let result = [];
let populateItems = (order) => {
return new Promise((resolve, reject) => {
this.doStuff(order.id)
.then((items) => {
order.items = items;
resolve(order);
});
});
};
return Promise.all(result.map(populateItems))
.then((orders) => {
resolve(orders);
});
});
}
doStuff(id) {
return __awaiter(this, void 0, void 0, function* () {
return;
});
}
}
exports.BrokenClass = BrokenClass;