HarmonyOS type如何合并?

rcp.RequestHeaders申明如下:

export type RequestHeaders = {
  [k: string]: string | string[] | undefined;
  'authorization'?: string;
  'accept'?: ContentType | ContentType[];
  'accept-charset'?: string | string[];
  'accept-encoding'?: ContentCoding | ContentCoding[];
  'accept-language'?: string | string[];
  'cache-control'?: string | string[];
  'cookie'?: string | string[];
  'range'?: string | string[];
  'upgrade'?: string | string[];
  'user-agent'?: string;
  'content-type'?: ContentType;
};

现在有两个header需要合并:

let defaultHeader: rcp.RequestHeaders = {
  'x-weimai-origin': 'doc-hm',
  'accept': 'application/json'
}

let newHeader: rcp.RequestHeaders = {
  'x-weimai-version': '1.0',
  'user-agent': 'WMAPP/6.76.0'
}

如何合并这四个属性都有的?ts常用的解构赋值不支持。Partial也不支持type。

{
  ...defaultHeader,
  ...newHeader
}
阅读 439
1 个回答

参考示例:

function arrayToMap(arr: Record<string, Object>[]) {
  // Record<string, Object>[] is more appropriate than Object[]
  if (!arr || arr.length === 0) {
    return null;
  }
  let map: Record<string, Object> = {};
  for (let index = 0; index < arr.length; index++) {
    const item = arr[index];
    if (item) {
      for (let k of Object.keys(item)) {
        map[k] = item[k]
      }
    }
  }
  return map;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
HarmonyOS
子站问答
访问
宣传栏