forked from sindresorhus/type-fest
-
Notifications
You must be signed in to change notification settings - Fork 0
/
is-if-unknown.ts
27 lines (22 loc) · 937 Bytes
/
is-if-unknown.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import {expectError, expectType} from 'tsd';
import type {IsUnknown, IfUnknown} from '../index';
declare const _unknown: unknown;
declare const something = 'something';
// `IsUnknown` should only be true for `any`
expectType<IsUnknown<unknown>>(true);
expectType<IsUnknown<typeof _unknown>>(true);
expectType<IsUnknown<string>>(false);
expectType<IsUnknown<typeof something>>(false);
expectType<IsUnknown<any>>(false);
expectType<IsUnknown<never>>(false);
expectType<IsUnknown<null>>(false);
expectType<IsUnknown<undefined>>(false);
// `IfUnknown` should return `true`/`false` if only `T` is specified
expectType<IfUnknown<unknown>>(true);
expectType<IfUnknown<unknown, 'T', 'F'>>('T');
expectType<IfUnknown<string>>(false);
expectType<IfUnknown<string, 'T', 'F'>>('F');
// Missing generic parameter
expectError<IsUnknown>(_unknown);
// TODO: commented temporarily due to SamVerschueren/tsd#173
// expectError<IfUnknown>(_unknown);