lib.es2018.asynciterable.d.ts (2257B)
1 /*! ***************************************************************************** 2 Copyright (c) Microsoft Corporation. All rights reserved. 3 Licensed under the Apache License, Version 2.0 (the "License"); you may not use 4 this file except in compliance with the License. You may obtain a copy of the 5 License at http://www.apache.org/licenses/LICENSE-2.0 6 7 THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 8 KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 9 WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 10 MERCHANTABLITY OR NON-INFRINGEMENT. 11 12 See the Apache Version 2.0 License for specific language governing permissions 13 and limitations under the License. 14 ***************************************************************************** */ 15 16 17 /// <reference no-default-lib="true"/> 18 19 /// <reference lib="es2015.symbol" /> 20 /// <reference lib="es2015.iterable" /> 21 22 interface SymbolConstructor { 23 /** 24 * A method that returns the default async iterator for an object. Called by the semantics of 25 * the for-await-of statement. 26 */ 27 readonly asyncIterator: unique symbol; 28 } 29 30 interface AsyncIterator<T, TReturn = any, TNext = any> { 31 // NOTE: 'next' is defined using a tuple to ensure we report the correct assignability errors in all places. 32 next(...[value]: [] | [TNext]): Promise<IteratorResult<T, TReturn>>; 33 return?(value?: TReturn | PromiseLike<TReturn>): Promise<IteratorResult<T, TReturn>>; 34 throw?(e?: any): Promise<IteratorResult<T, TReturn>>; 35 } 36 37 interface AsyncIterable<T, TReturn = any, TNext = any> { 38 [Symbol.asyncIterator](): AsyncIterator<T, TReturn, TNext>; 39 } 40 41 /** 42 * Describes a user-defined {@link AsyncIterator} that is also async iterable. 43 */ 44 interface AsyncIterableIterator<T, TReturn = any, TNext = any> extends AsyncIterator<T, TReturn, TNext> { 45 [Symbol.asyncIterator](): AsyncIterableIterator<T, TReturn, TNext>; 46 } 47 48 /** 49 * Describes an {@link AsyncIterator} produced by the runtime that inherits from the intrinsic `AsyncIterator.prototype`. 50 */ 51 interface AsyncIteratorObject<T, TReturn = unknown, TNext = unknown> extends AsyncIterator<T, TReturn, TNext> { 52 [Symbol.asyncIterator](): AsyncIteratorObject<T, TReturn, TNext>; 53 }