Skip to content

Commit 76e07b8

Browse files
committed
fix: tuple flow types
1 parent dfb7a13 commit 76e07b8

File tree

2 files changed

+41
-4
lines changed

2 files changed

+41
-4
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -419,7 +419,7 @@ A validator that requires the value to be an instance of `Date`.
419419
### `t.tuple(t.string(), t.number())`
420420

421421
A validator that requires the value to be `[string, number]`.
422-
Accepts a variable number of arguments.
422+
Accepts a variable number of arguments, though type generation for Flow is only overloaded up to 8 arguments.
423423

424424
### `t.allOf(A, B)`
425425

src/index.js.flow

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -155,9 +155,46 @@ declare export function record<K: string | number | symbol, V>(
155155

156156
declare export function instanceOf<T>(classType: () => Class<T>): Type<T>
157157

158-
declare export function tuple<T: Type<any>[]>(
159-
...types: T
160-
): Type<$TupleMap<T, <T>(T) => $PropertyType<T, '__type'>>>
158+
declare export function tuple<T1>(...types: [Type<T1>]): Type<[T1]>
159+
declare export function tuple<T1, T2>(
160+
...types: [Type<T1>, Type<T2>]
161+
): Type<[T1, T2]>
162+
declare export function tuple<T1, T2, T3>(
163+
...types: [Type<T1>, Type<T2>, Type<T3>]
164+
): Type<[T1, T2, T3]>
165+
declare export function tuple<T1, T2, T3, T4>(
166+
...types: [Type<T1>, Type<T2>, Type<T3>, Type<T4>]
167+
): Type<[T1, T2, T3, T4]>
168+
declare export function tuple<T1, T2, T3, T4, T5>(
169+
...types: [Type<T1>, Type<T2>, Type<T3>, Type<T4>, Type<T5>]
170+
): Type<[T1, T2, T3, T4, T5]>
171+
declare export function tuple<T1, T2, T3, T4, T5, T6>(
172+
...types: [Type<T1>, Type<T2>, Type<T3>, Type<T4>, Type<T5>, Type<T6>]
173+
): Type<[T1, T2, T3, T4, T5, T6]>
174+
declare export function tuple<T1, T2, T3, T4, T5, T6, T7>(
175+
...types: [
176+
Type<T1>,
177+
Type<T2>,
178+
Type<T3>,
179+
Type<T4>,
180+
Type<T5>,
181+
Type<T6>,
182+
Type<T7>
183+
]
184+
): Type<[T1, T2, T3, T4, T5, T6, T7]>
185+
declare export function tuple<T1, T2, T3, T4, T5, T6, T7, T8>(
186+
...types: [
187+
Type<T1>,
188+
Type<T2>,
189+
Type<T3>,
190+
Type<T4>,
191+
Type<T5>,
192+
Type<T6>,
193+
Type<T7>,
194+
Type<T8>
195+
]
196+
): Type<[T1, T2, T3, T4, T5, T6, T7, T8]>
197+
declare export function tuple(...types: Type<any>[]): Type<any>
161198

162199
declare export function allOf<T1>(...types: [Type<T1>]): Type<T1>
163200
declare export function allOf<T1, T2>(

0 commit comments

Comments
 (0)