TypeScript 类型判断

 

多谢大哥的指教。

 https://www.wenjiangs.com/doc/typescript-typeguard

instanceof

instanceof 与 typeof 类似,区别在于 typeof 判断基础类型,instanceof 判断是否为某个对象的实例:

class User {
  public nickname: string | undefined
  public group: number | undefined
}

class Log {
  public count: number = 10
  public keyword: string | undefined
}

function typeGuard(arg: User | Log) {
  if (arg instanceof User) {
    arg.count = 15 // Error, User 类型无此属性
  }

  if (arg instanceof Log) {
    arg.count = 15 // OK
  }
}

代码解释:

第 12 行,通过 instanceof 关键字,将这个代码块中变量 arg 的类型限定为 User 类型。

第 16 行,通过 instanceof 关键字,将这个代码块中变量 arg 的类型限定为 Log 类型。

if(res instanceof AxiosError){
        console.log(res.message);

}

 基础类型判断还是需要用  typeof

posted @ 2022-06-01 11:27  LuoCore  阅读(1057)  评论(0编辑  收藏  举报