import * as Promise from 'bluebird' export function createDeferred () { let resolve: (thenableOrResult?: T | PromiseLike | undefined) => void let reject: any const promise = new Promise(function (_resolve, _reject) { resolve = _resolve reject = _reject }) return { //@ts-ignore resolve, reject, promise, } }