Skip to content

Commit bb95e03

Browse files
Added non-generic overloads for each function
1 parent 712d686 commit bb95e03

File tree

3 files changed

+77
-0
lines changed

3 files changed

+77
-0
lines changed

src/number.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@ export interface AssertNumber {
1313
*/
1414
<T extends number>(value: T | undefined, fieldName?: string, defaultValue?: T): T;
1515

16+
/**
17+
* Asserts that a value is a numeric value
18+
* (positive or negative, integer or float, finite or infinite, but **not** `NaN`).
19+
*/
20+
(value: unknown, fieldName?: string, defaultValue?: unknown): number;
21+
1622
/**
1723
* Asserts that a value is an integer value (positive or negative).
1824
*/
@@ -28,15 +34,30 @@ export interface AssertInteger {
2834
*/
2935
<T extends number>(value: T | undefined, fieldName?: string, defaultValue?: T): T;
3036

37+
/**
38+
* Asserts that a value is an integer value (positive or negative).
39+
*/
40+
(value: unknown, fieldName?: string, defaultValue?: unknown): number;
41+
3142
/**
3243
* Asserts that a value is a positive integer value (one or more).
3344
*/
3445
positive<T extends number>(value: T | undefined, fieldName?: string, defaultValue?: T): T;
3546

47+
/**
48+
* Asserts that a value is a positive integer value (one or more).
49+
*/
50+
positive(value: unknown, fieldName?: string, defaultValue?: unknown): number;
51+
3652
/**
3753
* Asserts that a value is an integer value that is zero or greater.
3854
*/
3955
nonNegative<T extends number>(value: T | undefined, fieldName?: string, defaultValue?: T): T;
56+
57+
/**
58+
* Asserts that a value is an integer value that is zero or greater.
59+
*/
60+
nonNegative(value: unknown, fieldName?: string, defaultValue?: unknown): number;
4061
}
4162

4263

src/string.ts

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,31 +11,61 @@ export interface AssertString {
1111
*/
1212
<T extends string>(value: T | undefined, fieldName?: string, defaultValue?: T): T;
1313

14+
/**
15+
* Asserts that a value is a string value (including empty strings).
16+
*/
17+
(value: unknown, fieldName?: string, defaultValue?: unknown): string;
18+
1419
/**
1520
* Asserts that a value is a string with at least one character (including whitespace).
1621
*/
1722
nonEmpty<T extends string>(value: T | undefined, fieldName?: string, defaultValue?: T): T;
1823

24+
/**
25+
* Asserts that a value is a string with at least one character (including whitespace).
26+
*/
27+
nonEmpty(value: unknown, fieldName?: string, defaultValue?: unknown): string;
28+
1929
/**
2030
* Asserts that a value is a string with at least one non-whitespace character.
2131
*/
2232
nonWhitespace<T extends string>(value: T | undefined, fieldName?: string, defaultValue?: T): T;
2333

34+
/**
35+
* Asserts that a value is a string with at least one non-whitespace character.
36+
*/
37+
nonWhitespace(value: unknown, fieldName?: string, defaultValue?: unknown): string;
38+
2439
/**
2540
* Asserts that a value is a string with at least the specified number of characters.
2641
*/
2742
minLength<T extends string>(value: T | undefined, minLength: number, fieldName?: string, defaultValue?: T): T;
2843

44+
/**
45+
* Asserts that a value is a string with at least the specified number of characters.
46+
*/
47+
minLength(value: unknown, minLength: number, fieldName?: string, defaultValue?: unknown): string;
48+
2949
/**
3050
* Asserts that a value is a string with no more than the specified number of characters.
3151
*/
3252
maxLength<T extends string>(value: T | undefined, maxLength: number, fieldName?: string, defaultValue?: T): T;
3353

54+
/**
55+
* Asserts that a value is a string with no more than the specified number of characters.
56+
*/
57+
maxLength(value: unknown, maxLength: number, fieldName?: string, defaultValue?: unknown): string;
58+
3459
/**
3560
* Asserts that a value is a string with the specified number of characters.
3661
*/
3762
length<T extends string>(
3863
value: T | undefined, minLength: number, maxLength: number, fieldName?: string, defaultValue?: T): T;
64+
65+
/**
66+
* Asserts that a value is a string with the specified number of characters.
67+
*/
68+
length(value: unknown, minLength: number, maxLength: number, fieldName?: string, defaultValue?: unknown): string;
3969
}
4070

4171

src/type.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,26 +22,52 @@ export interface AssertType {
2222
*/
2323
string<T extends string>(value: T | undefined, fieldName?: string, defaultValue?: T): T;
2424

25+
/**
26+
* Asserts that a value is a string (including empty strings).
27+
*/
28+
string(value: unknown, fieldName?: string, defaultValue?: unknown): string;
29+
2530
/**
2631
* Asserts that a value is a numeric value
2732
* (positive or negative, integer or float, finite or infinite, but **not** `NaN`).
2833
*/
2934
number<T extends number>(value: T | undefined, fieldName?: string, defaultValue?: T): T;
3035

36+
/**
37+
* Asserts that a value is a numeric value
38+
* (positive or negative, integer or float, finite or infinite, but **not** `NaN`).
39+
*/
40+
number(value: unknown, fieldName?: string, defaultValue?: unknown): number;
41+
3142
/**
3243
* Asserts that a value is a boolean (must be exactly `true` or `false`, not just "truthy" or "falsy").
3344
*/
3445
boolean<T extends boolean>(value: T | undefined, fieldName?: string, defaultValue?: T): T;
3546

47+
/**
48+
* Asserts that a value is a boolean (must be exactly `true` or `false`, not just "truthy" or "falsy").
49+
*/
50+
boolean(value: unknown, fieldName?: string, defaultValue?: unknown): boolean;
51+
3652
/**
3753
* Asserts that a value is an object (including empty objects, but **not** including `null`).
3854
*/
3955
object<T extends object>(value: T | undefined, fieldName?: string, defaultValue?: T): T;
4056

57+
/**
58+
* Asserts that a value is an object (including empty objects, but **not** including `null`).
59+
*/
60+
object(value: unknown, fieldName?: string, defaultValue?: unknown): object;
61+
4162
/**
4263
* Asserts that a value is a function (including classes, async functions, arrow functions, generator functions).
4364
*/
4465
function<T extends Function>(value: T | undefined, fieldName?: string, defaultValue?: T): T;
66+
67+
/**
68+
* Asserts that a value is a function (including classes, async functions, arrow functions, generator functions).
69+
*/
70+
function(value: unknown, fieldName?: string, defaultValue?: unknown): Function;
4571
}
4672

4773

0 commit comments

Comments
 (0)