|
| 1 | +import { trackedArray, trackedObject, trackedWeakSet, trackedSet, trackedMap, trackedWeakMap } from '@ember/reactive'; |
| 2 | +import { expectTypeOf } from 'expect-type'; |
| 3 | + |
| 4 | + |
| 5 | +// ------- trackedArray ------- |
| 6 | +expectTypeOf(trackedArray()).toEqualTypeOf<unknown[]>(); |
| 7 | +expectTypeOf(trackedArray([1, 3])).toEqualTypeOf<number[]>(); |
| 8 | + |
| 9 | +// ------- trackedObject ------- |
| 10 | +expectTypeOf(trackedObject()).toEqualTypeOf<object>(); |
| 11 | +expectTypeOf(trackedObject({ foo: 2 } as const)).toEqualTypeOf<{ readonly foo: 2 }>(); |
| 12 | + |
| 13 | +// ------- trackedWeakSet ------- |
| 14 | +expectTypeOf(trackedWeakSet<object>()).toEqualTypeOf<WeakSet<object>>(); |
| 15 | +expectTypeOf(trackedWeakSet([{ foo: 2 } as const])).toEqualTypeOf<WeakSet<{ readonly foo: 2 }>>(); |
| 16 | + |
| 17 | +// ------- trackedSet ------- |
| 18 | +expectTypeOf(trackedSet<number>()).toEqualTypeOf<Set<number>>(); |
| 19 | +expectTypeOf(trackedSet(new Set([1, 2, 3]))).toEqualTypeOf<Set<number>>() |
| 20 | + |
| 21 | + |
| 22 | +// ------- trackedMap ------- |
| 23 | +expectTypeOf(trackedMap<string, number>()).toEqualTypeOf<Map<string, number>>(); |
| 24 | +expectTypeOf(trackedMap(new Map([['foo', 2]]))).toEqualTypeOf<Map<string, number>>(); |
| 25 | + |
| 26 | +// ------- trackedWeakMap ------- |
| 27 | +expectTypeOf(trackedWeakMap<object, string>()).toEqualTypeOf<WeakMap<object, string>>(); |
| 28 | +expectTypeOf(trackedWeakMap([[{ greet: 'hi'}, 2], [{greet: 'hello'}, 3]])).toEqualTypeOf<WeakMap<{ greet: string}, number>>(); |
0 commit comments