4.6.6 • Published 6 months ago

@types/co v4.6.6

Weekly downloads
86,614
License
MIT
Repository
github
Last release
6 months ago

Installation

npm install --save @types/co

Summary

This package contains type definitions for co (https://github.com/tj/co#readme).

Details

Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/co.

index.d.ts

// Type definitions for co 4.6
// Project: https://github.com/tj/co#readme
// Definitions by: Doniyor Aliyev <https://github.com/doniyor2109>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// Minimum TypeScript Version: 3.6

// Since TS 3.6 the checker knows that the correct type of returned values and yielded values https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-6.html
// Generator<T, TReturn, TNext> => TReturn
// Function => ReturnType<Function>
// others => others
type ExtractType<I> = I extends { [Symbol.iterator]: () => Iterator<any, infer TReturn, any> }
    ? TReturn
    : I extends (...args: any[]) => any
    ? ReturnType<I>
    : I;

interface Co {
    <F extends (...args: any[]) => Iterator<any, any, any>>(fn: F, ...args: Parameters<F>): Promise<
        ExtractType<ReturnType<F>>
    >;
    default: Co;
    co: Co;
    wrap: <F extends (...args: any[]) => Iterator<any, any, any>>(
        fn: F,
    ) => (...args: Parameters<F>) => Promise<ExtractType<ReturnType<F>>>;
}

declare const co: Co;

export = co;

Additional Details

  • Last updated: Mon, 27 Sep 2021 14:01:21 GMT
  • Dependencies: none
  • Global values: none

Credits

These definitions were written by Doniyor Aliyev.