|
1 | | -import {expectType, expectError} from 'tsd'; |
2 | | -import arrify = require('.'); |
| 1 | +/* eslint-disable @typescript-eslint/ban-types */ |
| 2 | +import {expectType, expectError, expectAssignable} from 'tsd'; |
| 3 | +import arrify from './index.js'; |
3 | 4 |
|
4 | 5 | expectType<[]>(arrify(null)); |
5 | 6 | expectType<[]>(arrify(undefined)); |
6 | 7 | expectType<[string]>(arrify('🦄')); |
7 | 8 | expectType<string[]>(arrify(['🦄'])); |
8 | | -expectType<[boolean]>(arrify(true)); |
| 9 | +expectAssignable<[boolean]>(arrify(true)); |
9 | 10 | expectType<[number]>(arrify(1)); |
10 | | -expectType<[{}]>(arrify({})); |
| 11 | +expectAssignable<[Record<string, unknown>]>(arrify({})); |
11 | 12 | expectType<[number, string]>(arrify([1, 'foo'])); |
12 | | -expectType<(string | boolean)[]>( |
| 13 | +expectType<Array<string | boolean>>( |
13 | 14 | arrify(new Set<string | boolean>(['🦄', true])) |
14 | 15 | ); |
15 | 16 | expectType<number[]>(arrify(new Set([1, 2]))); |
16 | 17 | expectError(arrify(['🦄'] as const).push('')); |
17 | | -expectType<number[] | []>(arrify(Boolean() ? [1, 2] : null)); |
18 | | -expectType<number[] | []>(arrify(Boolean() ? [1, 2] : undefined)); |
19 | | -expectType<number[] | [string]>(arrify(Boolean() ? [1, 2] : '🦄')); |
20 | | -expectType<number[] | string[]>(arrify(Boolean() ? [1, 2] : ['🦄'])); |
21 | | -expectType<number[] | [boolean]>(arrify(Boolean() ? [1, 2] : true)); |
22 | | -expectType<number[] | [number]>(arrify(Boolean() ? [1, 2] : 3)); |
23 | | -expectType<number[] | [{}]>(arrify(Boolean() ? [1, 2] : {})); |
24 | | -expectType<number[] | [number, string]>( |
25 | | - arrify(Boolean() ? [1, 2] : [1, 'foo']) |
| 18 | +expectType<[number, number] | []>(arrify(false ? [1, 2] : null)); |
| 19 | +expectType<[number, number] | []>(arrify(false ? [1, 2] : undefined)); |
| 20 | +expectType<[number, number] | [string]>(arrify(false ? [1, 2] : '🦄')); |
| 21 | +expectType<[number, number] | [string]>(arrify(false ? [1, 2] : ['🦄'])); |
| 22 | +expectAssignable<number[] | [boolean]>(arrify(false ? [1, 2] : true)); |
| 23 | +expectAssignable<number[] | [number]>(arrify(false ? [1, 2] : 3)); |
| 24 | +expectAssignable<number[] | [Record<string, unknown>]>(arrify(false ? [1, 2] : {})); |
| 25 | +expectAssignable<number[] | [number, string]>( |
| 26 | + arrify(false ? [1, 2] : [1, 'foo']) |
26 | 27 | ); |
27 | | -expectType<number[] | (string | boolean)[]>( |
28 | | - arrify(Boolean() ? [1, 2] : new Set<string | boolean>(['🦄', true])) |
| 28 | +expectAssignable<number[] | Array<string | boolean>>( |
| 29 | + arrify(false ? [1, 2] : new Set<string | boolean>(['🦄', true])) |
29 | 30 | ); |
30 | | -expectType<number[] | [boolean] | [string]>( |
31 | | - arrify(Boolean() ? [1, 2] : Boolean() ? true : '🦄') |
| 31 | +expectAssignable<number[] | [boolean] | [string]>( |
| 32 | + arrify(false ? [1, 2] : (false ? true : '🦄')) |
32 | 33 | ); |
0 commit comments