Skip to content
This repository was archived by the owner on Jul 20, 2025. It is now read-only.

Commit b6f43bd

Browse files
committed
refact: add type helpers
- If - And
1 parent 26d55ad commit b6f43bd

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed

src/index.ts

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
1-
type IndexType = string | number | symbol;
2-
type ObjectWithProperties<K extends IndexType> = { [id in K]: any };
3-
export type Equals<T, K> = T extends K ? (K extends T ? true : false) : false;
4-
export type Extends<T, K> = T extends K ? true : false;
5-
export type HasProperties<T, K extends IndexType> = Extends<
6-
T,
7-
ObjectWithProperties<K>
1+
type ObjectMap<K extends keyof any = keyof any, V = any> = { [id in K]: V };
2+
3+
type If<Condition extends boolean, Then, Else = never> = Condition extends true
4+
? Then
5+
: Else;
6+
type And<A extends boolean, B extends boolean> = If<
7+
A,
8+
If<B, true, false>,
9+
false
810
>;
9-
export type Not<T extends boolean> = T extends true ? false : true;
11+
export type Extends<A, B> = A extends B ? true : false;
12+
export type HasProperties<T, K extends keyof any> = Extends<T, ObjectMap<K>>;
13+
export type Not<T extends boolean> = If<Extends<T, true>, false, true>;
14+
export type Equals<A, B> = And<Extends<A, B>, Extends<B, A>>;
1015

1116
export function assert<T extends boolean>(expected: T) {}
1217
export function assertTrue<T extends true>() {}

0 commit comments

Comments
 (0)