typescript - 无法在 TypeScript 项目中使用 @faker-js/faker —— 未定义 —— 但旧的 "faker"导入可以工作。为什么?

标签 typescript npm undefined faker.js

现在我有:

    "faker": "^5.5.3",
    "@types/faker": "^5.5.3",

在我的packages.json中。我使用 5.5.3 是因为项目 (codecept) 中还有另一个依赖项被锁定到旧版本。

原始的 faker 项目位于 https://www.npmjs.com/package/faker似乎已经被遗弃了。它有一个笑话版本号,没有描述等。

我想使用在https://www.npmjs.com/package/@faker-js/faker处积极维护的项目

但是当我尝试时:

  • 在我的packages.json中:"@faker-js/faker": "^5.5.3"
  • 使用以下方式导入:import { faker } from '@faker-js/faker';(根据 faker-js 文档)
  • 将其命名为faker.datatype.number(100);

我得到:

Cannot read properties of undefined (reading 'datatype')
TypeError: Cannot read properties of undefined (reading 'datatype')

奇怪的是,同样的代码可以在同事的笔记本电脑上运行。

我做错了什么?我尝试过删除 node_modules 并重新开始,然后运行 ​​npm install,但没有运气。

最佳答案

将导入更改为 import faker from '@faker-js/faker' 应该可以解决问题,因为 faker 5.5.3 使用默认导入。

但是,您会收到编译器错误,因为此版本的 faker 不提供自己的类型。该包也没有 @types 并且 @types/faker 中的类型似乎与 @faker-js/faker 不匹配包裹。因此,您可以执行 const faker = require('@faker-js/faker) 并继续而不需要类型。但我建议升级 @faker-js/faker' 因为较新的版本具有开箱即用的 TypeScript 支持。

关于typescript - 无法在 TypeScript 项目中使用 @faker-js/faker —— 未定义 —— 但旧的 "faker"导入可以工作。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73738556/

相关文章:

TypeScript:将联合类型映射到另一个联合类型

javascript - 变量 'name' 不返回未定义

npm - 将参数传递到npm脚本的中间

javascript - 隐藏或删除图像 src=undefined

c - 取消引用未定义的指针值?

node.js - typescript 错误 : Property 'user' does not exist on type 'Request'

typescript - 从空数组访问对象属性时如何使 TypeScript 编译失败

dom - Angular2+ typescript : how to manipulate DOM element?

node.js - 针对多个 Node 模块版本进行测试

node.js - 命令 "-g"中的 "npm install -g <something>"标志有什么作用?