保誠-保戶業務員媒合平台
HelenHuang
2022-06-09 9bdb95c9e34cef640534e5e5a1e2225a80442000
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
import { Observable } from './Observable';
import { Subscription } from './Subscription';
 
/**
 * Note: This will add Symbol.observable globally for all TypeScript users,
 * however, we are no longer polyfilling Symbol.observable
 */
declare global {
  interface SymbolConstructor {
    readonly observable: symbol;
  }
}
 
/** OPERATOR INTERFACES */
 
export interface UnaryFunction<T, R> { (source: T): R; }
 
export interface OperatorFunction<T, R> extends UnaryFunction<Observable<T>, Observable<R>> {}
 
export type FactoryOrValue<T> = T | (() => T);
 
export interface MonoTypeOperatorFunction<T> extends OperatorFunction<T, T> {}
 
export interface Timestamp<T> {
  value: T;
  timestamp: number;
}
 
export interface TimeInterval<T> {
  value: T;
  interval: number;
}
 
/** SUBSCRIPTION INTERFACES */
 
export interface Unsubscribable {
  unsubscribe(): void;
}
 
export type TeardownLogic = Unsubscribable | Function | void;
 
export interface SubscriptionLike extends Unsubscribable {
  unsubscribe(): void;
  readonly closed: boolean;
}
 
export type SubscribableOrPromise<T> = Subscribable<T> | Subscribable<never> | PromiseLike<T> | InteropObservable<T>;
 
/** OBSERVABLE INTERFACES */
 
export interface Subscribable<T> {
  subscribe(observer?: PartialObserver<T>): Unsubscribable;
  /** @deprecated Use an observer instead of a complete callback */
  subscribe(next: null | undefined, error: null | undefined, complete: () => void): Unsubscribable;
  /** @deprecated Use an observer instead of an error callback */
  subscribe(next: null | undefined, error: (error: any) => void, complete?: () => void): Unsubscribable;
  /** @deprecated Use an observer instead of a complete callback */
  subscribe(next: (value: T) => void, error: null | undefined, complete: () => void): Unsubscribable;
  subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Unsubscribable;
}
 
export type ObservableInput<T> = SubscribableOrPromise<T> | ArrayLike<T> | Iterable<T>;
 
/** @deprecated use {@link InteropObservable } */
export type ObservableLike<T> = InteropObservable<T>;
 
export type InteropObservable<T> = { [Symbol.observable]: () => Subscribable<T>; };
 
/** OBSERVER INTERFACES */
 
export interface NextObserver<T> {
  closed?: boolean;
  next: (value: T) => void;
  error?: (err: any) => void;
  complete?: () => void;
}
 
export interface ErrorObserver<T> {
  closed?: boolean;
  next?: (value: T) => void;
  error: (err: any) => void;
  complete?: () => void;
}
 
export interface CompletionObserver<T> {
  closed?: boolean;
  next?: (value: T) => void;
  error?: (err: any) => void;
  complete: () => void;
}
 
export type PartialObserver<T> = NextObserver<T> | ErrorObserver<T> | CompletionObserver<T>;
 
export interface Observer<T> {
  closed?: boolean;
  next: (value: T) => void;
  error: (err: any) => void;
  complete: () => void;
}
 
/** SCHEDULER INTERFACES */
 
export interface SchedulerLike {
  now(): number;
  schedule<T>(work: (this: SchedulerAction<T>, state?: T) => void, delay?: number, state?: T): Subscription;
}
export interface SchedulerAction<T> extends Subscription {
  schedule(state?: T, delay?: number): Subscription;
}
 
export type ObservedValueOf<O> = O extends ObservableInput<infer T> ? T : never;
 
export type ObservedValuesFromArray<X> = X extends Array<ObservableInput<infer T>> ? T : never;