Add is.numericString() (#67)
This commit is contained in:
parent
9ac56f1be7
commit
7317226c80
3 changed files with 23 additions and 2 deletions
|
|
@ -96,6 +96,10 @@ All the below methods accept a value and returns a boolean for whether the value
|
||||||
|
|
||||||
Keep in mind that [functions are objects too](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions).
|
Keep in mind that [functions are objects too](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions).
|
||||||
|
|
||||||
|
##### .numericString(value)
|
||||||
|
|
||||||
|
Returns `true` for a string that represents a number. For example, `'42'` and `'-8'`.
|
||||||
|
|
||||||
##### .regExp(value)
|
##### .regExp(value)
|
||||||
##### .date(value)
|
##### .date(value)
|
||||||
##### .error(value)
|
##### .error(value)
|
||||||
|
|
|
||||||
|
|
@ -135,10 +135,13 @@ namespace is { // tslint:disable-line:no-namespace
|
||||||
export const symbol = isOfType<Symbol>('symbol');
|
export const symbol = isOfType<Symbol>('symbol');
|
||||||
// tslint:enable:variable-name
|
// tslint:enable:variable-name
|
||||||
|
|
||||||
|
export const nullOrUndefined = (value: any): value is null | undefined => null_(value) || undefined(value);
|
||||||
|
export const numericString = (value: any): boolean =>
|
||||||
|
string(value) && value.length > 0 && !Number.isNaN(Number(value));
|
||||||
|
|
||||||
export const array = Array.isArray;
|
export const array = Array.isArray;
|
||||||
export const buffer = isBuffer;
|
export const buffer = isBuffer;
|
||||||
|
|
||||||
export const nullOrUndefined = (value: any): value is null | undefined => null_(value) || undefined(value);
|
|
||||||
export const object = (value: any): value is object => !nullOrUndefined(value) && (function_(value) || isObject(value));
|
export const object = (value: any): value is object => !nullOrUndefined(value) && (function_(value) || isObject(value));
|
||||||
export const iterable = (value: any): value is IterableIterator<any> => !nullOrUndefined(value) && function_(value[Symbol.iterator]);
|
export const iterable = (value: any): value is IterableIterator<any> => !nullOrUndefined(value) && function_(value[Symbol.iterator]);
|
||||||
export const asyncIterable = (value: any): value is AsyncIterableIterator<any> => !nullOrUndefined(value) && function_(value[Symbol.asyncIterator]);
|
export const asyncIterable = (value: any): value is AsyncIterableIterator<any> => !nullOrUndefined(value) && function_(value[Symbol.asyncIterator]);
|
||||||
|
|
|
||||||
|
|
@ -76,6 +76,14 @@ const types = new Map<string, Test>([
|
||||||
Symbol('🦄')
|
Symbol('🦄')
|
||||||
]
|
]
|
||||||
}],
|
}],
|
||||||
|
['numericString', {
|
||||||
|
is: m.numericString,
|
||||||
|
fixtures: [
|
||||||
|
'5',
|
||||||
|
'-3.2',
|
||||||
|
'Infinity'
|
||||||
|
]
|
||||||
|
}],
|
||||||
['array', {
|
['array', {
|
||||||
is: is.array,
|
is: is.array,
|
||||||
fixtures: [
|
fixtures: [
|
||||||
|
|
@ -411,7 +419,7 @@ test('is.null', t => {
|
||||||
});
|
});
|
||||||
|
|
||||||
test('is.string', t => {
|
test('is.string', t => {
|
||||||
testType(t, 'string', ['emptyString']);
|
testType(t, 'string', ['emptyString', 'numericString']);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('is.number', t => {
|
test('is.number', t => {
|
||||||
|
|
@ -426,6 +434,12 @@ test('is.symbol', t => {
|
||||||
testType(t, 'symbol');
|
testType(t, 'symbol');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('is.numericString', t => {
|
||||||
|
testType(t, 'numericString');
|
||||||
|
t.false(m.numericString(''));
|
||||||
|
t.false(m.numericString(1));
|
||||||
|
});
|
||||||
|
|
||||||
test('is.array', t => {
|
test('is.array', t => {
|
||||||
testType(t, 'array', ['emptyArray']);
|
testType(t, 'array', ['emptyArray']);
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue