-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathreplace-keys.test.ts
56 lines (53 loc) · 1000 Bytes
/
replace-keys.test.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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import { Numeric, ReplaceKeys, TestType } from 'src';
import { test, expect } from 'vitest';
test('_', () => {
type A = {
bar: string;
foo: number;
fooBar: string;
};
const result: TestType<
ReplaceKeys<A, 'bar', { bar: Numeric }>,
{
bar: Numeric;
foo: number;
fooBar: string;
},
true
> = true;
expect(result).toBe(true);
});
test('_', () => {
type A = {
bar: string;
foo: number;
fooBar: string;
};
const result: TestType<
ReplaceKeys<A, 'fooBar' | 'foo', { fooBar: Numeric; foo: string }>,
{
bar: string;
foo: string;
fooBar: Numeric;
},
true
> = true;
expect(result).toBe(true);
});
test('_', () => {
type A = {
bar: string;
foo: number;
fooBar: string;
};
const result: TestType<
ReplaceKeys<A, 'fooBar' | 'foo', { noFoo: Numeric }>,
{
bar: string;
foo: never;
fooBar: never;
},
true
> = true;
expect(result).toBe(true);
});