Skip to content

Commit 3133ab8

Browse files
authored
feat: Add isNegativeNumber, isPositiveNumber, and isNonZeroNumber (#67)
1 parent 7a34fbf commit 3133ab8

File tree

2 files changed

+45
-0
lines changed

2 files changed

+45
-0
lines changed

src/index.spec.ts

+18
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,24 @@ describe('ts-util-is methods', () => {
5353
expect(util.isNumber(83)).toEqual(true);
5454
});
5555

56+
it('ensure value is a non-zero number', () => {
57+
expect(util.isNonZeroNumber(-1)).toEqual(true);
58+
expect(util.isNonZeroNumber(0)).toEqual(false);
59+
expect(util.isNonZeroNumber(1)).toEqual(true);
60+
});
61+
62+
it('ensure value is a positive number', () => {
63+
expect(util.isPositiveNumber(-1)).toEqual(false);
64+
expect(util.isPositiveNumber(0)).toEqual(false);
65+
expect(util.isPositiveNumber(1)).toEqual(true);
66+
});
67+
68+
it('ensure value is a negative number', () => {
69+
expect(util.isNegativeNumber(1)).toEqual(false);
70+
expect(util.isNegativeNumber(0)).toEqual(false);
71+
expect(util.isNegativeNumber(-1)).toEqual(true);
72+
});
73+
5674
it('ensure value is an object', () => {
5775
expect(util.isObject({})).toEqual(true);
5876
});

src/index.ts

+27
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,33 @@ export function isNumber(value: any): value is number {
116116
return typeof value === 'number';
117117
}
118118

119+
/**
120+
* Determines if a reference is a non-zero `Number`.
121+
*
122+
* @param value Reference to check.
123+
*/
124+
export function isNonZeroNumber(value: unknown): value is number {
125+
return typeof value === 'number' && !!value;
126+
}
127+
128+
/**
129+
* Determines if a reference is a positive `Number`.
130+
*
131+
* @param value Reference to check.
132+
*/
133+
export function isPositiveNumber(value: unknown): value is number {
134+
return typeof value === 'number' && value > 0;
135+
}
136+
137+
/**
138+
* Determines if a reference is a negative `Number`.
139+
*
140+
* @param value Reference to check.
141+
*/
142+
export function isNegativeNumber(value: unknown): value is number {
143+
return typeof value === 'number' && value < 0;
144+
}
145+
119146
/**
120147
* Determines if a reference is an 'Object'.
121148
*

0 commit comments

Comments
 (0)