Skip to content

Commit d40d964

Browse files
committed
fix the optional problem
1 parent 0e4cb3f commit d40d964

File tree

2 files changed

+3
-6
lines changed

2 files changed

+3
-6
lines changed

test/propEq.test.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,6 @@ type Obj = {
1111

1212
const obj = {} as Obj;
1313

14-
const literalVar = 'A';
15-
let typedVar: 'A' | 'B' = 'A';
16-
1714
//
1815
// literals
1916
//

types/propEq.d.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ import { WidenLiterals } from './util/tools';
33
// propEq(val)
44
export function propEq<T>(val: T): {
55
// propEq(val)(name)(obj)
6-
<K extends PropertyKey>(name: K): <U extends Record<K, any>>(obj: T extends WidenLiterals<U[K]> ? U : never) => boolean;
6+
<K extends PropertyKey>(name: K): <U extends Partial<Record<K, any>>>(obj: Required<U> extends Record<K, any> ? T extends WidenLiterals<U[K]> ? U : never : never) => boolean;
77
// propEq(val)(name, obj)
8-
<K extends keyof U, U extends Record<PropertyKey, any>>(name: K, obj: T extends WidenLiterals<U[K]> ? U : never): boolean;
8+
<K extends PropertyKey, U extends Partial<Record<K, any>>>(name: K, obj: Required<U> extends Record<K, any> ? T extends WidenLiterals<U[K]> ? U : never : never): boolean;
99
};
1010
// propEq(val, name)(obj)
11-
export function propEq<T, K extends PropertyKey>(val: T, name: K): <U extends Record<K, any>>(obj: T extends WidenLiterals<U[K]> ? U : never) => boolean;
11+
export function propEq<T, K extends PropertyKey>(val: T, name: K): <U extends Partial<Record<K, any>>>(obj: Required<U> extends Record<K, any> ? T extends WidenLiterals<U[K]> ? U : never : never) => boolean;
1212
// propEq(val, name, obj)
1313
export function propEq<K extends keyof U, U>(val: U[K], name: K, obj: U): boolean;

0 commit comments

Comments
 (0)