Skip to content

Commit c914ef0

Browse files
committed
Add type defn for 1-argument computed cell
1 parent 7ab6dc9 commit c914ef0

File tree

1 file changed

+33
-21
lines changed

1 file changed

+33
-21
lines changed

typescript/packages/common-frp/src/signal.ts

Lines changed: 33 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -118,28 +118,37 @@ export const state = <T>(initial: T) => {
118118
}
119119

120120
export type Computed = {
121-
<A, B, Z>(
121+
<A, B>(
122+
upstreams: [Signal<A>],
123+
compute: (a: A) => B
124+
): Signal<B>
125+
126+
<A, B, C>(
122127
upstreams: [Signal<A>, Signal<B>],
123-
compute: (a: A, b: B) => Z
124-
): Signal<Z>
125-
<A, B, C, Z>(
128+
compute: (a: A, b: B) => C
129+
): Signal<C>
130+
131+
<A, B, C, D>(
126132
upstreams: [Signal<A>, Signal<B>, Signal<C>],
127-
compute: (a: A, b: B, c: C) => Z
128-
): Signal<Z>
129-
<A, B, C, D, Z>(
133+
compute: (a: A, b: B, c: C) => D
134+
): Signal<D>
135+
136+
<A, B, C, D, E>(
130137
upstreams: [Signal<A>, Signal<B>, Signal<C>, Signal<D>],
131-
compute: (a: A, b: B, c: C, d: D) => Z
132-
): Signal<Z>
133-
<A, B, C, D, E, Z>(
138+
compute: (a: A, b: B, c: C, d: D) => E
139+
): Signal<E>
140+
141+
<A, B, C, D, E, F>(
134142
upstreams: [
135143
Signal<A>,
136144
Signal<B>,
137145
Signal<C>,
138146
Signal<D>,
139147
Signal<E>],
140-
compute: (a: A, b: B, c: C, d: D, e: E) => Z
141-
): Signal<Z>
142-
<A, B, C, D, E, F, Z>(
148+
compute: (a: A, b: B, c: C, d: D, e: E) => F
149+
): Signal<F>
150+
151+
<A, B, C, D, E, F, G>(
143152
upstreams: [
144153
Signal<A>,
145154
Signal<B>,
@@ -148,9 +157,10 @@ export type Computed = {
148157
Signal<E>,
149158
Signal<F>
150159
],
151-
compute: (a: A, b: B, c: C, d: D, e: E, f: F) => Z
152-
): Signal<Z>
153-
<A, B, C, D, E, F, G, Z>(
160+
compute: (a: A, b: B, c: C, d: D, e: E, f: F) => G
161+
): Signal<G>
162+
163+
<A, B, C, D, E, F, G, H>(
154164
upstreams: [
155165
Signal<A>,
156166
Signal<B>,
@@ -160,9 +170,10 @@ export type Computed = {
160170
Signal<F>,
161171
Signal<G>
162172
],
163-
compute: (a: A, b: B, c: C, d: D, e: E, f: F, g: G) => Z
164-
): Signal<Z>
165-
<A, B, C, D, E, F, G, H, Z>(
173+
compute: (a: A, b: B, c: C, d: D, e: E, f: F, g: G) => H
174+
): Signal<H>
175+
176+
<A, B, C, D, E, F, G, H, I>(
166177
upstreams: [
167178
Signal<A>,
168179
Signal<B>,
@@ -173,8 +184,9 @@ export type Computed = {
173184
Signal<G>,
174185
Signal<H>
175186
],
176-
compute: (a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H) => Z
177-
): Signal<Z>
187+
compute: (a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H) => I
188+
): Signal<I>
189+
178190
(
179191
upstreams: Array<Signal<any>>,
180192
compute: (...values: any) => any

0 commit comments

Comments
 (0)