类型判断
getType: function (obj: any) {
return Object.prototype.toString.call(obj).slice(8, -1);
}
//=> [object Function/xxxx] => ‘Function/xxxx’
Object.prototype.toString.call(obj))
是一种常用的typeof
,使用了object原型上的toString。
该值存放于对象的[Symbol.toStringTag]
处,新标准中被接口化:
Math[Symbol.toStringTag]; // => 'Math'
BigInt.prototype[Symbol.toStringTag]; // => 'BigInt'
大多数内置的对象提供了这个属性,如果是自己新建的类,则默认Object
,也可自定义:
class ValidatorClass {
get [Symbol.toStringTag]() {
return 'Validator';
}
}
标签:TypeScript,obj,Symbol,Object,toStringTag,toString,类型,prototype
From: https://www.cnblogs.com/olhhh/p/17404281.html