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参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
value | any | 是 | 要检查的值 |
type | string | 是(仅 isType) | 类型名称字符串 |
返回值
| 类型 | 说明 |
|---|---|
boolean | true 表示是该类型,false 表示不是 |
工作原理
使用 Object.prototype.toString.call() 获取精确的类型标签:
- 调用
Object.prototype.toString.call(value) - 返回格式为
[object Type]的字符串 - 提取
Type部分并转换为小写 - 与预期类型比较
类型标签映射:
- 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 类型收窄。