微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

`fake-timers` 7.1.x 编译错误“找不到名称‘queueMicrotask’”

如何解决`fake-timers` 7.1.x 编译错误“找不到名称‘queueMicrotask’”

我正在尝试编译一个 Salesforce sfdx 插件,它是一个节点项目,具有(除其他外)以下依赖链,最终导致 fake-timers@^7.1.0:

@salesforce/command@2.2.0 -> @oclif/test@^1.2.4 -> fancy-test@^1.4.3 -> @types/sinon@* -> @sinonjs/fake-timers@^7.1.0

使用 Typescript 编译器 tsc 编译时,出现以下错误

node_modules/@sinonjs/fake-timers/types/fake-timers-src.d.ts:11:28 - error TS2304: Cannot find name 'queueMicrotask'.

11     queueMicrotask: typeof queueMicrotask;
                              ~~~~~~~~~~~~~~


Found 1 error.

error Command Failed with exit code 1.

这看起来像是 fake-timers-src.d.ts 中的错误,但在 7.1.0 中引入,因此我可以尝试将版本锁定在 7.0.5,但这可能会破坏各种其他事情。

使用/维护假计时器的人知道如何解决这个问题吗?或者这会在未来的版本中修复吗?

顺便说一句,我是一个完整的 NodeJS n00b,所以如果我遗漏了一些非常明显的东西,请善待并告诉我它是什么:)

谢谢! 弗兰斯

解决方法

弗兰斯!这里来自诗浓团队的 fatso83 :)

这里的问题都与TypeScript有关,与Node无关,所以我感到您的痛苦。难怪你想知道。问题是定义可能缺少该属性。对于版本 7,我们尝试从 JSDoc 生成 TypeScript 定义。这对于更简单的类型相当有效,但最终,TypeScript 在描述类型方面比 JSDoc(如 typeof 运算符)更强大,所以这是一场艰苦的战斗,永远不会产生与可用类型相同的质量the external Definitely Typed project。我们最终放弃了这项工作,因此这不会得到修复,但它自然会在版本 8 中消失(不会发布自己的类型)。

您可以做的是:npm install @sinonjs/fake-timers@6(以前的版本)和 npm install @types/sinonjs__fake-timers@6(外部维护的类型)。

您可能会在 this issue 中找到相关背景。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?