forked from facebook/flow
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathprelude.js
58 lines (41 loc) · 1.34 KB
/
prelude.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
declare class Object {}
declare class Function {}
declare class Boolean {}
declare class Number {}
declare class String {
@@iterator(): Iterator<string>;
}
declare class RegExp {}
declare class $ReadOnlyArray<+T> {
@@iterator(): Iterator<T>;
}
declare class Array<T> extends $ReadOnlyArray<T> {}
// Promise
declare class Promise<+R> {}
declare function $await<T>(p: Promise<T> | T): T;
// Iterable/Iterator/Generator
interface $Iterator<+Yield,+Return,-Next> {
@@iterator(): $Iterator<Yield,Return,Next>;
}
interface $Iterable<+Yield,+Return,-Next> {
@@iterator(): $Iterator<Yield,Return,Next>;
}
interface Generator<+Yield,+Return,-Next> {
@@iterator(): $Iterator<Yield,Return,Next>;
}
type Iterator<+T> = $Iterator<T,void,void>;
type Iterable<+T> = $Iterable<T,void,void>;
declare function $iterate<T>(p: Iterable<T>): T;
// Async Iterable/Iterator/Generator
interface $AsyncIterator<+Yield,+Return,-Next> {
@@asyncIterator(): $AsyncIterator<Yield,Return,Next>;
}
interface $AsyncIterable<+Yield,+Return,-Next> {
@@asyncIterator(): $AsyncIterator<Yield,Return,Next>;
}
interface AsyncGenerator<+Yield,+Return,-Next> {
@@asyncIterator(): $AsyncIterator<Yield,Return,Next>;
}
type AsyncIterator<+T> = $AsyncIterator<T,void,void>;
type AsyncIterable<+T> = $AsyncIterable<T,void,void>;
declare function $asyncIterator<T>(p: AsyncIterable<T>): T;