8000 Fixes flow definitions and tests · immutable-js/immutable-js@57b875c · GitHub
[go: up one dir, main page]

Skip to content

Commit 57b875c

Browse files
committed
Fixes flow definitions and tests
1 parent d290b72 commit 57b875c

File tree

2 files changed

+24
-18
lines changed

2 files changed

+24
-18
lines changed

type-definitions/immutable.js.flow

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -485,9 +485,8 @@ declare class List<T> extends IndexedCollection<T> {
485485
}
486486

487487
declare class Map<K,V> extends KeyedCollection<K,V> {
488-
static <K,V>(_: void): Map<K,V>;
489-
static <V>(obj?: {[key: string]: V}): Map<string, V>;
490-
static <K, V>(iterable?: ESIterable<[K,V]>): Map<K, V>;
488+
static <K, V>(obj?: {[key: K]: V}): Map<K, V>;
489+
static <K, V>(iterable: ESIterable<[K,V]>): Map<K, V>;
491490

492491
static isMap(maybeMap: any): boolean;
493492

@@ -561,12 +560,12 @@ declare class OrderedMap<K,V> extends Map<K,V> {
561560
}
562561

563562
declare class Set<T> extends SetCollection<T> {
564-
static <T>(iterable?: ESIterable<T>): Set<T>;
565-
563+
static <T>(iterable: ESIterable<T>): Set<T>;
566564
static isSet(maybeSet: any): boolean;
567565
static of<T>(...values: T[]): Set<T>;
568566
static f 10000 romKeys<T>(iter: ESIterable<[T,any]>): Set<T>;
569-
static fromKeys(iter: { [key: string]: any }): Set<string>;
567+
static fromKeys<K>(object: { [key: K]: V }): Set<K>;
568+
static (_: void): Set<any>;
570569

571570
add<U>(value: U): Set<T|U>;
572571
delete(value: T): this;

type-definitions/tests/immutable-flow.js

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,13 @@ var stringToNumber: Map<string, number> = Map()
1111
var stringToNumberOrString: Map<string, string | number> = Map()
1212
var numberToString: Map<number, string> = Map()
1313
var stringOrNumberToNumberOrString: Map<string | number, string | number> = Map()
14-
var anyMap: Map = Map()
14+
var anyMap: Map<any, any> = Map()
1515
var numberSet: Set<number> = Set()
1616
var numberOrStringSet: Set<number | string> = Set()
1717
var stringSet: Set<string> = Set()
1818
var numberStack: Stack<number> = Stack()
1919
var numberOrStringStack: Stack<string | number> = Stack()
2020
var number: number = 0
21-
var numberSequence: IndexedSeq<number>
22-
var stringSequence: IndexedSeq<string>
2321
var stringToNumberIterable: KeyedIterable<string, number> = stringToNumber
2422
var numberToStringIterable: KeyedIterable<number, string> = numberToString
2523

@@ -163,15 +161,21 @@ stringToNumber = Map({'a': 1}).update('a', (value) => 'a')
163161
stringToNumberOrString = Map({'a': 1}).update('a', 'b', (value) => 'a')
164162
// $ExpectError
165163
stringToNumber = Map({'a': 1}).update('a', 'b', (value) => 'a')
164+
// $ExpectError
165+
stringToNumberOrString = Map({'a': 1}).merge({'a': {a: '1'}})
166+
// $ExpectError
167+
stringToNumberOrString = Map({'a': 1}).update('a', 'b', (value) => {a: '1'})
166168

167169
stringToNumber = Map({'a': 1}).merge(Map({'a': 1}))
168170
stringToNumberOrString = Map({'a': 1}).merge({'a': 'b'})
169171
// $ExpectError
170-
stringToNumber = Map({'a': 1}).merge({'a': 'b'})
172+
stringToNumber = Map({a: 1}).merge({'a': 'b'})
171173
// $ExpectError
172-
stringToNumber = Map({'a': 1}).merge([['a', 'b']])
174+
stringToNumber = Map({a: 1}).merge([[1, 'a']])
175+
176+
// FIXME: Simple `stringToNumber = ...` assignment shows an error at the declaration of stringToNumber and numberToString
173177
// $ExpectError
174-
stringToNumber = Map({'a': 1}).merge(Map({'a': 'b'}))
178+
const stringToNumber: Map<string, number> = Map({a: 1}).merge(numberToString)
175179

176180
stringToNumber = Map({'a': 1}).mergeWith((previous, next, key) => 1, [1])
177181
// $ExpectError
@@ -233,7 +237,7 @@ numberSet = Set.of(1, 2)
233237
numberSet = Set.of('a', 'b')
234238

235239
numberSet = Set.fromKeys(Map().set(1, ''))
236-
stringSet = Set.fromKeys({'a': ''})
240+
stringSet = Set.fromKeys({a: ''})
237241
// $ExpectError
238242
numberSet = Set.fromKeys(Map({'a': 1}))
239243
// $ExpectError
@@ -380,13 +384,16 @@ numberStack = Stack(['a']).flatten()
380384

381385
/* Range & Repeat */
382386

383-
numberSequence = Range(0, 0, 0)
384-
// $ExpectError
385-
stringSequence = Range(0, 0, 0)
387+
// `{}` provide namespaces
388+
{ const numberSequence: IndexedSeq<number> = Range(0, 0, 0) }
389+
{ const numberSequence: IndexedSeq<number> = Repeat(1, 5) }
386390

387-
numberSequence = Repeat(0, 1)
391+
{ const stringSequence: IndexedSeq<string> = Repeat('a', 5) }
392+
// $ExpectError
393+
{ const stringSequence: IndexedSeq<string> = Repeat(0, 1) }
388394
// $ExpectError
389-
numberSequence = Repeat('a', 1)
395+
{ const stringSequence: IndexedSeq<string> = Range(0, 0, 0) }
396+
390397

391398
/* Record */
392399
// TODO

0 commit comments

Comments
 (0)
0