TypeScript 类型疑问

代码如下:

//  期望该函数参数对象的值(data[key])只能为string 或 array 类型;ts应该如何写?
function urlParams(data:object): string {
  let urlParams = new URLSearchParams();
  for (let key in data) {
    urlParams.append(key, data[key]);
  }
  return urlParams.toString();
}

vs code 错误提示如下
image.png

阅读 2.4k
3 个回答
function urlParams(data: Record<string, string | string[]>) {
  let urlParams = new URLSearchParams();
  for (let key in data) {
    urlParams.append(key, data[key]);
  }
  return urlParams.toString();
}

首先你这个参数可能是两种类型
1、字符串数组
2、数组嵌套数组
这样的话,你需要要用到重载来解决这个问题
其次如果如果你要使用字符串数组时,需要使用数组泛型
例如
function urlParams(data:Array<string>): string{}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进