From fb623cb9bbeb78bc0b5e2cd402dec0e67b0b3a72 Mon Sep 17 00:00:00 2001 From: Ron Buckton Date: Tue, 4 Jun 2019 11:02:36 -0700 Subject: [PATCH] Fix 'co' for strict generators (#35937) --- types/co/index.d.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/types/co/index.d.ts b/types/co/index.d.ts index ab53fc0857..98a2a1cfa1 100644 --- a/types/co/index.d.ts +++ b/types/co/index.d.ts @@ -4,7 +4,12 @@ // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 3.1 -type ExtractType = T extends IterableIterator ? R : never; +type ExtractType = + T extends { [Symbol.iterator](): { next(): { done: true, value: infer U } } } ? U : + T extends { [Symbol.iterator](): { next(): { done: false } } } ? never : + T extends { [Symbol.iterator](): { next(): { value: infer U } } } ? U : + T extends { [Symbol.iterator](): any } ? unknown : + never; interface Co { Iterator>(fn: F, ...args: Parameters): Promise>>;