TypeScript 类型

类型判断

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';
  }
}
posted @ 2023-05-16 15:06  olhhh  阅读(26)  评论(0)    收藏  举报