【问题标题】:Lodash isEqualWith how to customise it to not check the type of the Object?Lodash isEqualWith 如何自定义不检查对象的类型?
【发布时间】:2019-12-20 16:37:41
【问题描述】:

_.isEqual 比较两个具有相同字段但其中一个具有类型的对象时,他返回 false

问题是我希望它在这种情况下返回 true。 我不知道如何为 _isEqualWith 创建一个函数来检查它。

例子:

obj1 = {"a": "dd", "b":"ss", "c":""}
obj2 = MyTypeModel{"a": "dd", "b":"ss", "c":""}

_.isEqual(obj1, obj2);

将返回 false,只是因为其中一个对象具有类型。 我希望它在这种情况下返回 true

那么,如何使用 lodash isEqualWith() 只检查字段而不检查类型?

旁注/问题:

一个例子被简化了,但是我的对象正在丢失类型,因为它们在对象内部。 可以忽略类型吗?或者问题是打字稿没有保存对象类型,我应该再次初始化对象内部的对象,然后再将它们传递给 isEqual 函数?

【问题讨论】:

    标签: typescript lodash


    【解决方案1】:

    一种方法是将对象带入一个通用类型并进行比较。

    const objA : Object = Object.assign({}, obj1);
    const objB : Object = Object.assign({}, obj2);
    
    console.log(_.isEqual(objA, objB));
    

    注意:如果类型暴露了字段周围的属性,则此方法可能不起作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-24
      • 1970-01-01
      • 1970-01-01
      • 2015-11-22
      相关资源
      最近更新 更多