typeshi 1.7.7 → 1.7.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -191,3 +191,25 @@ export declare function isFunction(value: any): value is Function;
|
|
|
191
191
|
*/
|
|
192
192
|
export declare function isUndefined(value: any): value is undefined;
|
|
193
193
|
export declare function isUndefinedOrNull(value: unknown): value is undefined | null;
|
|
194
|
+
export type NumberKeys<T> = {
|
|
195
|
+
[K in keyof T]: T[K] extends number | undefined ? K : never;
|
|
196
|
+
}[keyof T];
|
|
197
|
+
export type ArrayKeys<T> = {
|
|
198
|
+
[K in keyof T]: T[K] extends Array<any> | undefined ? K : never;
|
|
199
|
+
}[keyof T];
|
|
200
|
+
export type ArrayOfTypeKeys<T, U> = {
|
|
201
|
+
[K in keyof T]: T[K] extends Array<U> | undefined ? K : never;
|
|
202
|
+
}[keyof T];
|
|
203
|
+
export type StringKeys<T> = {
|
|
204
|
+
[K in keyof T]: T[K] extends string | undefined ? K : never;
|
|
205
|
+
}[keyof T];
|
|
206
|
+
export type PrimitiveKeys<T> = {
|
|
207
|
+
[K in keyof T]: T[K] extends string | number | boolean | null | undefined ? K : never;
|
|
208
|
+
}[keyof T];
|
|
209
|
+
export type Primitive = string | number | boolean | null | undefined;
|
|
210
|
+
/** Get the union of all values of `T` (like `valueof T`) */
|
|
211
|
+
export type ValueOf<T> = T[keyof T];
|
|
212
|
+
/** Keys of `T` whose values extend a given type `U` */
|
|
213
|
+
export type KeysOfType<T, U> = {
|
|
214
|
+
[K in keyof T]: T[K] extends U ? K : never;
|
|
215
|
+
}[keyof T];
|
|
@@ -285,7 +285,9 @@ function isObject(value, requireNonEmpty = true, requireNonArray = true) {
|
|
|
285
285
|
}
|
|
286
286
|
// isPosInt
|
|
287
287
|
function isPositveInteger(value) {
|
|
288
|
-
return (
|
|
288
|
+
return (typeof value === 'number'
|
|
289
|
+
&& Number.isInteger(value)
|
|
290
|
+
&& value > 0);
|
|
289
291
|
}
|
|
290
292
|
const isType = (value, guard, ...args) => {
|
|
291
293
|
return guard(value, ...args);
|