typescript 版本:4.5.2

lodash 版本:4.17.21

npm run build
tsc && react-scripts build


node_modules/@types/lodash/common/object.d.ts:1026:46 - error TS1005: '?' expected.
1026         : K extends `${infer N extends number}` ? T[N] <br/>
                                                  ~
node_modules/@types/lodash/common/object.d.ts:1031:46 - error TS1005: '?' expected.
1031         : K extends `${infer N extends number}` ? T[N] <br/>
                                                  ~
node_modules/@types/lodash/common/object.d.ts:1041:46 - error TS1005: '?' expected.
1041         : K extends `${infer N extends number}` <br/>
                                                  ~


Found 3 errors.

2

  • 1
    存在问题。目前唯一建议的修复方法是使用 @types/ lodash@4.17.5


    – 

  • 更改 lodash 版本后,出现 ansi-regex lib 的新错误。internal/modules/cjs/loader.js:1102 throw new ERR_REQUIRE_ESM(filename, parentPath, packageJsonPath); ^ 错误 [ERR_REQUIRE_ESM]: 必须使用 import 来加载 ES 模块:node_modules/ansi-regex/index.js require() of /node_modules/ansi-regex/index.js from node_modules/renderkid/node_modules/strip-ansi/index.js 是一个 ES 模块文件,因为它是一个 .js 文件,其最近的父 package.json 包含“type”:“module”,它将该包范围内的所有 .js 文件定义为 ES 模块。


    – 


最佳答案
2

对我来说,使用 lodash 版本 4.17.5 是可行的。

我正在使用 typescript 版本 4.6.4 和 lodash 版本 4.17.5。

卸载当前版本(4.17.6)并重新安装4.17.5版本

npm 卸载 @types/lodash

npm 安装 @types/ lodash@4.17.5

然后,ng build 应该可以工作

尝试这个

“@types/lodash”:“4.14.168”

最后,它就像一个魅力一样起作用了(“typescript”:“4.1.5”)