Skip to content

Commit 303d480

Browse files
committed
Add discriminate helper
1 parent 1d6c25c commit 303d480

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

server/src/util/discriminate.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
export function discriminate<K extends PropertyKey, V extends string | number | boolean>(
2+
discriminantKey: K,
3+
discriminantValue: V,
4+
) {
5+
return <T extends Record<K, any>>(
6+
obj: T & Record<K, V extends T[K] ? T[K] : V>,
7+
): obj is Extract<T, Record<K, V>> => obj[discriminantKey] === discriminantValue
8+
}

0 commit comments

Comments
 (0)