typescript-closure-tools
Version:
Command-line tools to convert closure-style JSDoc annotations to typescript, and to convert typescript sources to closure externs files
41 lines (35 loc) • 2.02 kB
TypeScript
// Type definitions for tspromise 0.0.4
// Project: https://github.com/soywiz/tspromise
// Definitions by: Carlos Ballesteros Velasco <https://github.com/soywiz>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
/// <reference path="../node/node.d.ts" />
declare class Thenable<T> {
then<TR>(onFulfilled: (value: T) => Thenable<TR>, onRejected?: (error: Error) => TR): Thenable<TR>;
then<TR>(onFulfilled: (value: T) => Thenable<TR>, onRejected?: (error: Error) => void): Thenable<TR>;
then<TR>(onFulfilled: (value: T) => TR, onRejected?: (error: Error) => void): Thenable<TR>;
then<TR>(onFulfilled: (value: T) => TR, onRejected?: (error: Error) => TR): Thenable<TR>;
catch(onRejected: (error: Error) => T): Thenable<T>;
}
interface NodeCallback<T> {
(err: Error, value: T): void;
}
declare module "tspromise" {
class Promise<T> extends Thenable<T> {
constructor(callback: (resolve: (value?: T) => void, reject?: (error: Error) => void) => void);
static resolve<T>(value?: T): Thenable<T>;
static resolve<T>(promise: Thenable<T>): Thenable<T>;
static reject<T>(error: Error): Thenable<T>;
static all(promises: Thenable<any>[]): Thenable<any[]>;
static async<TR>(callback: () => TR): () => Thenable<TR>;
static async<T1, TR>(callback: (p1: T1) => TR): (p1: T1) => Thenable<TR>;
static async<T1, T2, TR>(callback: (p1: T1, p2: T2) => TR): (p1: T1, p2: T2) => Thenable<TR>;
static async<T1, T2, T3, TR>(callback: (p1: T1, p2: T2, p3: T3) => TR): (p1: T1, p2: T2, p3: T3) => Thenable<TR>;
static async<T1, T2, T3, T4, TR>(callback: (p1: T1, p2: T2, p3: T3, p4: T4) => TR): (p1: T1, p2: T2, p3: T3, p4: T4) => Thenable<TR>;
static spawn<TR>(generatorFunction: () => TR): Thenable<TR>;
static rewriteFolderSync(path: string): void;
static waitAsync(time: number): Thenable<{}>;
static nfcall<T>(obj: any, methodName: String, ...args: any[]): Thenable<T>;
}
export = Promise;
}
declare function yield<T>(promise: Thenable<T>): T;