Fix type narrowing for non empty array assert
This commit is contained in:
parent
6d4f32287f
commit
16d8e52e2b
2 changed files with 32 additions and 2 deletions
|
|
@ -575,7 +575,7 @@ type Assert = {
|
||||||
nodeStream: (value: unknown) => asserts value is NodeStream;
|
nodeStream: (value: unknown) => asserts value is NodeStream;
|
||||||
infinite: (value: unknown) => asserts value is number;
|
infinite: (value: unknown) => asserts value is number;
|
||||||
emptyArray: (value: unknown) => asserts value is never[];
|
emptyArray: (value: unknown) => asserts value is never[];
|
||||||
nonEmptyArray: (value: unknown) => asserts value is [unknown, ...unknown[]];
|
nonEmptyArray: <T = unknown>(value: T | T[]) => asserts value is [T, ...T[]];
|
||||||
emptyString: (value: unknown) => asserts value is '';
|
emptyString: (value: unknown) => asserts value is '';
|
||||||
emptyStringOrWhitespace: (value: unknown) => asserts value is string;
|
emptyStringOrWhitespace: (value: unknown) => asserts value is string;
|
||||||
nonEmptyString: (value: unknown) => asserts value is string;
|
nonEmptyString: (value: unknown) => asserts value is string;
|
||||||
|
|
@ -681,7 +681,7 @@ export const assert: Assert = {
|
||||||
nodeStream: (value: unknown): asserts value is NodeStream => assertType(is.nodeStream(value), AssertionTypeDescription.nodeStream, value),
|
nodeStream: (value: unknown): asserts value is NodeStream => assertType(is.nodeStream(value), AssertionTypeDescription.nodeStream, value),
|
||||||
infinite: (value: unknown): asserts value is number => assertType(is.infinite(value), AssertionTypeDescription.infinite, value),
|
infinite: (value: unknown): asserts value is number => assertType(is.infinite(value), AssertionTypeDescription.infinite, value),
|
||||||
emptyArray: (value: unknown): asserts value is never[] => assertType(is.emptyArray(value), AssertionTypeDescription.emptyArray, value),
|
emptyArray: (value: unknown): asserts value is never[] => assertType(is.emptyArray(value), AssertionTypeDescription.emptyArray, value),
|
||||||
nonEmptyArray: (value: unknown): asserts value is [unknown, ...unknown[]] => assertType(is.nonEmptyArray(value), AssertionTypeDescription.nonEmptyArray, value),
|
nonEmptyArray: <T = unknown>(value: T | T[]): asserts value is [T, ...T[]] => assertType(is.nonEmptyArray(value), AssertionTypeDescription.nonEmptyArray, value),
|
||||||
emptyString: (value: unknown): asserts value is '' => assertType(is.emptyString(value), AssertionTypeDescription.emptyString, value),
|
emptyString: (value: unknown): asserts value is '' => assertType(is.emptyString(value), AssertionTypeDescription.emptyString, value),
|
||||||
emptyStringOrWhitespace: (value: unknown): asserts value is string => assertType(is.emptyStringOrWhitespace(value), AssertionTypeDescription.emptyStringOrWhitespace, value),
|
emptyStringOrWhitespace: (value: unknown): asserts value is string => assertType(is.emptyStringOrWhitespace(value), AssertionTypeDescription.emptyStringOrWhitespace, value),
|
||||||
nonEmptyString: (value: unknown): asserts value is string => assertType(is.nonEmptyString(value), AssertionTypeDescription.nonEmptyString, value),
|
nonEmptyString: (value: unknown): asserts value is string => assertType(is.nonEmptyString(value), AssertionTypeDescription.nonEmptyString, value),
|
||||||
|
|
|
||||||
30
test/test.ts
30
test/test.ts
|
|
@ -1477,6 +1477,36 @@ test('is.nonEmptyArray', t => {
|
||||||
function_(value);
|
function_(value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
const strings = ['🦄', 'unicorn'];
|
||||||
|
const function_ = (value: string) => value;
|
||||||
|
|
||||||
|
assert.nonEmptyArray(strings);
|
||||||
|
|
||||||
|
const value = strings[0];
|
||||||
|
function_(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
const mixed = ['🦄', 'unicorn', 1, 2];
|
||||||
|
const function_ = (value: string | number) => value;
|
||||||
|
|
||||||
|
assert.nonEmptyArray(mixed);
|
||||||
|
|
||||||
|
const value = mixed[0];
|
||||||
|
function_(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
const arrays = [['🦄'], ['unicorn']];
|
||||||
|
const function_ = (value: string[]) => value;
|
||||||
|
|
||||||
|
assert.nonEmptyArray(arrays);
|
||||||
|
|
||||||
|
const value = arrays[0];
|
||||||
|
function_(value);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
test('is.emptyString', t => {
|
test('is.emptyString', t => {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue