请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

URLSearchParams 报错

老师,我发现按照课件中的instanceof关键字方法判断URLSearchParams类型在运行时会有如下报错:
Uncaught (in promise) TypeError: Right-hand side of ‘instanceof’ is not an object
但是改成:
toString.call(val) === '[object URLSearchParams]'
就没有问题了,这是什么原因呀?

正在回答 回答被采纳积分+3

2回答

提问者 慕丝8101871 2020-02-05 10:23:33
import { URLSearchParams } from "url";

// 报错的写法
export function isURLSearchParams(val: any): val is URLSearchParams {
return typeof val !== 'undefined' && val instanceof URLSearchParams;
}

//没有报错的写法
export function isURLSearchParams(val: any): val is URLSearchParams {
return typeof val !== 'undefined' && toString.call(val) === '[object URLSearchParams]';
}

具体报错:

Uncaught (in promise) TypeError: Right-hand side of 'instanceof' is not an object

    at isURLSearchParams (universal.ts:56)

    at buildUrl (url.ts:40)

    at transformUrl (dispatchRequest.ts:29)

    at processConfig (dispatchRequest.ts:20)

    at dispatchRequest (dispatchRequest.ts:14)

0 回复 有任何疑惑可以回复我~
  • 你是什么版本的 TS?
    回复 有任何疑惑可以回复我~ 2020-02-05 11:55:02
ustbhuangyi 2020-02-04 11:42:09

你代码是怎么写的,贴出来看看

0 回复 有任何疑惑可以回复我~
  • 提问者 慕丝8101871 #1
    发现错误啦,是vscode从'url'里引入的URLSearchParams,应该是'lib.dom'里的那个
    回复 有任何疑惑可以回复我~ 2020-02-05 11:44:02
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信