Skip to content

Commit

Permalink
fix: tuple flow types
Browse files Browse the repository at this point in the history
  • Loading branch information
jedwards1211 committed Apr 8, 2021
1 parent dfb7a13 commit 76e07b8
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 4 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -419,7 +419,7 @@ A validator that requires the value to be an instance of `Date`.
### `t.tuple(t.string(), t.number())`

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

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

Expand Down
43 changes: 40 additions & 3 deletions src/index.js.flow
Original file line number Diff line number Diff line change
Expand Up @@ -155,9 +155,46 @@ declare export function record<K: string | number | symbol, V>(

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

declare export function tuple<T: Type<any>[]>(
...types: T
): Type<$TupleMap<T, <T>(T) => $PropertyType<T, '__type'>>>
declare export function tuple<T1>(...types: [Type<T1>]): Type<[T1]>
declare export function tuple<T1, T2>(
...types: [Type<T1>, Type<T2>]
): Type<[T1, T2]>
declare export function tuple<T1, T2, T3>(
...types: [Type<T1>, Type<T2>, Type<T3>]
): Type<[T1, T2, T3]>
declare export function tuple<T1, T2, T3, T4>(
...types: [Type<T1>, Type<T2>, Type<T3>, Type<T4>]
): Type<[T1, T2, T3, T4]>
declare export function tuple<T1, T2, T3, T4, T5>(
...types: [Type<T1>, Type<T2>, Type<T3>, Type<T4>, Type<T5>]
): Type<[T1, T2, T3, T4, T5]>
declare export function tuple<T1, T2, T3, T4, T5, T6>(
...types: [Type<T1>, Type<T2>, Type<T3>, Type<T4>, Type<T5>, Type<T6>]
): Type<[T1, T2, T3, T4, T5, T6]>
declare export function tuple<T1, T2, T3, T4, T5, T6, T7>(
...types: [
Type<T1>,
Type<T2>,
Type<T3>,
Type<T4>,
Type<T5>,
Type<T6>,
Type<T7>
]
): Type<[T1, T2, T3, T4, T5, T6, T7]>
declare export function tuple<T1, T2, T3, T4, T5, T6, T7, T8>(
...types: [
Type<T1>,
Type<T2>,
Type<T3>,
Type<T4>,
Type<T5>,
Type<T6>,
Type<T7>,
Type<T8>
]
): Type<[T1, T2, T3, T4, T5, T6, T7, T8]>
declare export function tuple(...types: Type<any>[]): Type<any>

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

0 comments on commit 76e07b8

Please sign in to comment.