5
5
declare function keysOfEmptyObject ( o : { } ) : string [ ] ;
6
6
declare function keysOfNonPrimitive ( o : object ) : string [ ] ;
7
7
8
- namespace explicitConstraints {
8
+ namespace implicitConstraints {
9
9
export function keyLengthsEqualUsingEmptyObjectFn < T > ( a : T , b : T ) : [ T , T ] | undefined {
10
10
if ( typeof a !== "object" || typeof b !== "object" || ! a || ! b ) {
11
11
return undefined ;
@@ -26,7 +26,7 @@ namespace explicitConstraints {
26
26
if ( Array . isArray ( a ) || Array . isArray ( b ) ) {
27
27
return undefined ;
28
28
}
29
- if ( keysOfEmptyObject ( a ) . length !== keysOfEmptyObject ( b ) . length ) {
29
+ if ( keysOfNonPrimitive ( a ) . length !== keysOfNonPrimitive ( b ) . length ) {
30
30
return [ a , b ] ;
31
31
}
32
32
return undefined ;
@@ -35,7 +35,7 @@ namespace explicitConstraints {
35
35
36
36
// Explicit Constraints of 'unknown'
37
37
namespace explicitConstraintsOfUnknown {
38
- export function keyLengthsEqualUsingEmptyObjectFn < T > ( a : T , b : T ) : [ T , T ] | undefined {
38
+ export function keyLengthsEqualUsingEmptyObjectFn < T extends unknown > ( a : T , b : T ) : [ T , T ] | undefined {
39
39
if ( typeof a !== "object" || typeof b !== "object" || ! a || ! b ) {
40
40
return undefined ;
41
41
}
@@ -48,14 +48,14 @@ namespace explicitConstraintsOfUnknown {
48
48
return undefined ;
49
49
}
50
50
51
- export function keyLengthsEqualUsingNonPrimitiveFn < T > ( a : T , b : T ) : [ T , T ] | undefined {
51
+ export function keyLengthsEqualUsingNonPrimitiveFn < T extends unknown > ( a : T , b : T ) : [ T , T ] | undefined {
52
52
if ( typeof a !== "object" || typeof b !== "object" || ! a || ! b ) {
53
53
return undefined ;
54
54
}
55
55
if ( Array . isArray ( a ) || Array . isArray ( b ) ) {
56
56
return undefined ;
57
57
}
58
- if ( keysOfEmptyObject ( a ) . length !== keysOfEmptyObject ( b ) . length ) {
58
+ if ( keysOfNonPrimitive ( a ) . length !== keysOfNonPrimitive ( b ) . length ) {
59
59
return [ a , b ] ;
60
60
}
61
61
return undefined ;
0 commit comments