如何在Typescript中使用对象作为参数?

kcugc4gi  于 2023-01-10  发布在  TypeScript
关注(0)|答案(2)|浏览(125)

我想写一个Typescript函数,它有两个对象参数**,而不需要事先知道每个对象的键。**
我正在尝试将此函数从JS转换为TS

function shallowEqual(object1, object2) {
  const keys1 = Object.keys(object1);
  const keys2 = Object.keys(object2);
  if (keys1.length !== keys2.length) {
    return false;
  }
  for (let key of keys1) {
    if (object1[key] !== object2[key]) {
      return false;
    }
  }
  return true;
}

提前感谢:-)

brccelvz

brccelvz1#

我想你可以用下面的方法来检查对象的相等性

type TObject = {
  [key in string]?: string  | string[] | object;
}

function shallowEqual(object1: TObject, object2: TObject) {
  return JSON.stringify(object1) === JSON.stringify(object2);
}
suzh9iv8

suzh9iv82#

shallowEqual(object1: any, object2: any): boolean {
    return JSON.stringify(object1) === JSON.stringify(object2);
  }

shallowEqual(object1: any, object2: any): boolean {    
    const keys1 = Object.keys(object1);
    const keys2 = Object.keys(object2);
    if (keys1.length !== keys2.length) {
      return false;
    }
    for (let key of keys1) {
      if (object1[key] !== object2[key]) {
        return false;
      }
    }
    return true;
  }

相关问题