diff --git a/packages/observable/src/observable.ts b/packages/observable/src/observable.ts index 31f8403d15..0f094132f5 100644 --- a/packages/observable/src/observable.ts +++ b/packages/observable/src/observable.ts @@ -1319,7 +1319,13 @@ function isIterable(input: any): input is Iterable { } export function isArrayLike(x: any): x is ArrayLike { - return x && typeof x.length === 'number' && !isFunction(x); + return ( + x && + typeof x.length === 'number' && + !isFunction(x) && + x.length >= 0 && + (x.length === 0 || (typeof x !== 'string' && 0 in x)) + ); } /**