openchain-sdk-yxl-wx-request
Version:
openchain sd YxL wx request
65 lines (50 loc) • 1.32 kB
JavaScript
;
const type = exports;
/**
* 类型检查工具函数
*/
// 基础类型检查
type.undefined = function(value) {
return typeof value === 'undefined';
};
type.string = function(value) {
return typeof value === 'string';
};
type.number = function(value) {
return typeof value === 'number' && !isNaN(value);
};
type.boolean = function(value) {
return typeof value === 'boolean';
};
type.array = function(value) {
return Array.isArray(value);
};
type.object = function(value) {
return value !== null && typeof value === 'object' && !Array.isArray(value);
};
type.function = function(value) {
return typeof value === 'function';
};
type.numeric = function(value) {
return !isNaN(parseFloat(value)) && isFinite(value);
};
// 特殊类型检查
type.buffer = function(value) {
return Buffer.isBuffer(value);
};
type.date = function(value) {
return value instanceof Date;
};
type.error = function(value) {
return value instanceof Error;
};
type.promise = function(value) {
return value && typeof value.then === 'function';
};
// 空值检查
type.empty = function(value) {
if (type.array(value)) return value.length === 0;
if (type.object(value)) return Object.keys(value).length === 0;
if (type.string(value)) return value.trim().length === 0;
return !value;
};