Skip to content

isType

类型判断工具函数集合,提供精确的 JavaScript 类型检查。

函数签名

typescript
function isType(value: any, type: string): boolean
function isString(value: any): value is string
function isNumber(value: any): value is number
function isBoolean(value: any): value is boolean
function isNull(value: any): value is null
function isUndefined(value: any): value is undefined
function isSymbol(value: any): value is symbol
function isBigInt(value: any): value is bigint
function isObject(value: any): value is object
function isArray(value: any): value is any[]
function isFunction(value: any): value is Function
function isDate(value: any): value is Date
function isRegExp(value: any): value is RegExp
function isMap(value: any): value is Map<any, any>
function isSet(value: any): value is Set<any>
function isWeakMap(value: any): value is WeakMap<any, any>
function isWeakSet(value: any): value is WeakSet<any>
function isPromise(value: any): value is Promise<any>
function isError(value: any): value is Error

参数

参数名类型必填说明
valueany要检查的值
typestring是(仅 isType类型名称字符串

返回值

类型说明
booleantrue 表示是该类型,false 表示不是

工作原理

使用 Object.prototype.toString.call() 获取精确的类型标签:

  1. 调用 Object.prototype.toString.call(value)
  2. 返回格式为 [object Type] 的字符串
  3. 提取 Type 部分并转换为小写
  4. 与预期类型比较

类型标签映射

  • String → [object String]
  • Number → [object Number]
  • Boolean → [object Boolean]
  • Null → [object Null]
  • Undefined → [object Undefined]
  • Object → [object Object]
  • Array → [object Array]
  • Function → [object Function]
  • Date → [object Date]
  • RegExp → [object RegExp]
  • Map → [object Map]
  • Set → [object Set]
  • Promise → [object Promise]
  • Error → [object Error]

typeof 更准确,能区分 null、数组、Date 等特殊对象类型。所有函数都是类型守卫,支持 TypeScript 类型收窄。