【问题标题】:Lodash omit not working after angular migration to 6角度迁移到 6 后 Lodash 省略不工作
【发布时间】:2018-07-17 14:07:00
【问题描述】:

我的这个功能工作正常:

 SFcopy = _.omit(SFcopy, (objectValue: any, objectField: string): boolean => {
            return (
                !defaultSF.hasOwnProperty(objectField) ||
                _.isEqual(defaultSF[objectField], objectValue)
            );
         });

但是当我将 angular 更新为 6 时,该函数停止工作,并显示以下错误,我不知道如何修复

src/app/shared/search-filter.ts(1156,33) 中的错误:错误 TS2345: '(objectValue: any, objectField: string) => boolean' 类型的参数 不能分配给“许多”类型的参数。类型 '(objectValue: any, objectField: string) => boolean' 不可赋值 键入“PropertyKey []”。 类型“(objectValue:any,objectField:string)=> boolean”中缺少属性“includes”。

LODASH 版本(更新到最新版本不起作用):

"lodash": "^4.17.4",
"@types/lodash": "^4.14.62",

你能帮我解决它吗?

谢谢。

【问题讨论】:

  • 我认为它是 bcoz objectValue 有一个类型,任何将其更改为布尔值都可以工作
  • 或从这里删除布尔值_.omit(SFcopy, (objectValue: any, objectField: string)
  • 我都试过了,还是不行

标签: angular lodash angular6


【解决方案1】:

_.omit 在 Lodash 4 中已更改。现在提取谓词版本并重命名为 _.omitBy。将其更改为_.omitBy,它应该像以前一样工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-24
    相关资源
    最近更新 更多