function typeOf(arg: unknown): string { return Object.prototype.toString.call(arg).slice(8, -1); } // Equivalent of Util.isObject from ably-js function isObject(arg: unknown): arg is Record { return typeOf(arg) === 'Object'; } function isFunction(arg: unknown): arg is Function { return typeOf(arg) === 'Function'; } function isString(arg: unknown): arg is String { return typeOf(arg) === 'String'; } function isArray(arg: unknown): arg is Array { return Array.isArray(arg); } export { isArray, isFunction, isObject, isString };