自动生成类型验证函数组,方便维护和扩展。
validateTypes.js
const getTypeName = obj => Object.prototype.toString.call(obj).slice(8,-1)
const TYPES = ['Object', 'Array', 'Blob', 'FormData']
const typesFn = fnName => obj => getTypeName(obj) === fnName
function createTypeFunc(fnNames, fn) {
const func = {}
fnNames.map(fnName => func[`is${fnName}`] = fn(fnName))
return func
}
export default createTypeFunc(TYPES, typesFn)
合并助手函数
import types from './validateTypes.js'
...
Utils = {
Utils,
...types
}
...
使用
import Utils from 'utils.js'
console.log( Utils.isObject([])) // false
console.log( Utils.isObject({})) // true