假如对象是:
{
key0: val0,
key1: val1,
...
}
就是说,我不知道键值对的名称,类型是string
说白了,这是url参数
比如:
https://www.aaa.com?a=1&b=2&c=3
应该怎么写类型?
interface UrlParam {
// 这里不知道怎么写
}
interface OptionObj {
method?: string,
url?: string,
params?: UrlParam
}
function joinParam(domain: string, params: UrlParam = null): string {
if (!domain) return "";
let url: string = domain;
if (params && typeof params === 'object') {
let isFirst = true;
for (const key in params) {
url += isFirst ? '?' : '&';
url += `${key}=${params[key]}`;
isFirst = false;
}
}
return url;
}
我觉得我不适合玩Typescript,但无奈接手的项目是Typescript的,求各位大神提示一下
谢谢
万能的方法就是
AnyScript
,当然可能会被打你可以这样
也可以用Utility Types提供的快捷方式
另外,这样大力出奇迹的直接拼出来URL是有问题的,例如有个参数的值本身带有
&=?
怎么办可以用
URLSearchParams
进行处理,也可以看看成熟的库它们是怎么处理的,比如axios