Object对象类型判断
扩展实现了React对象的判断。
// 获取对象类型
export const typeObject = (object) => {
const objectType = Object.prototype.toString
.call(object)
.replace("[object ", "")
.replace("]", "");
return objectType;
};
export const isUndefined = (object) => {
return typeObject(object) === "Undefined";
};
export const isNull = (object) => {
return typeObject(object) === "Null";
};
export const isInvalid = (object) => {
return isUndefined(object) || isNull(object);
};
export const isValid = (object) => {
return !isInvalid(object);
};
export const isFunction = (object) => {
return ["Function", "AsyncFunction"].includes(typeObject(object));
};
export const isObject = (object) => {
return typeObject(object) === "Object";
};
export const isArray = (object) => {
return typeObject(object) === "Array";
};
export const isDate = (object) => {
return (
typeObject(
isString(object) ? new Date(object.replace(/-/g, "/")) : object
) === "Date"
);
};
export const isRegExp = (object) => {
return typeObject(object) === "RegExp";
};
export const isString = (object) => {
return typeObject(object) === "String";
};
export const isNumber = (object) => {
return typeObject(object) === "Number";
};
export const isBoolean = (object) => {
return typeObject(object) === "Boolean";
};
export const isReact = (object) => {
return (
isObject(object) &&
object.$$typeof &&
Symbol.keyFor(object.$$typeof) === "react.element"
);
};