如何在Mocha测试中向“ this”关键字添加类型?

保罗·拉兹万·伯格

我正在使用延迟的根套件功能在我的Mocha测试中初始化一些异步数据

在最顶层beforeEach,我正在创建一些具有特定类型的对象,并将它们存储在对象中。it套件的子测试文件中,我一直在使用this以避免避免无数次重复代码的方法,但是这样做却会丢失类型:

it("should do something", async function() {
  await this.token.approve(account, amount);
});

为了找回它们(特别是自动完成功能),我必须添加另一行代码:

const token: Erc20 = this.token;
await token.approve(account, amount);

我知道我可以通过用括号进行强制转换来内联地执行此操作,但我宁愿不这样做。

是否可以定义所有测试套件功能的“此”所有者对象的类型?

米罗斯拉夫·巴托什(MiroslavBajtoš)

您可以扩展Mocha的Context界面并声明其他测试上下文属性。

interface MyContext extends Mocha.Context {
  token: Erc20;
}

在测试函数中,可以为this参数添加类型信息,如下所示:

it('should do something', async function(this: MyContext) {
  await this.token.approve();
});

更新

上面的代码无法在stricterror TS2769: No overload matches this call.模式下编译。有关替代解决方案,请参见https://stackoverflow.com/a/62283449/69868

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

“类型”是JavaScript中的关键字吗?

来自分类Dev

如何使用'with'关键字添加?

来自分类Dev

将关键字排除添加到 jQuery 中的 indexOf 关键字匹配

来自分类Dev

读取txt文件中的关键字,并打印添加文本+关键字

来自分类Dev

out关键字与类型协方差如何关联?

来自分类常见问题

了解Scala中的“类型”关键字的作用

来自分类Dev

参数类型的构造函数中“ where”关键字的用途

来自分类Dev

Sikuli类型方法是Scala IDE中的关键字

来自分类Dev

如何使用Django添加meta关键字

来自分类Dev

如何在类css中使用特定关键字向所有div添加样式

来自分类Dev

是否可以在vim modeline中添加关键字

来自分类Dev

添加未在模板中显示的关键字

来自分类Dev

在bash / shell中的关键字之后添加文本

来自分类Dev

为什么TypeScript中的关键字关键字在2个“类型定义”中表现不同?

来自分类Dev

为什么必须将async关键字添加到具有await关键字的函数中?

来自分类Dev

为什么必须将async关键字添加到具有await关键字的函数中?

来自分类Dev

svn pre-commit hook-如何在某些文件类型中阻止关键字?

来自分类Dev

如何在MySQL的JSON数据类型列中按关键字分组

来自分类Dev

如何在TypeScript自动导入中删除“类型”关键字?

来自分类Dev

如何在lxml中添加python关键字术语作为标记属性?

来自分类Dev

如何在CodeMirror中添加关键字(并更改其颜色)?

来自分类Dev

如何在lxml中添加python关键字术语作为标记属性?

来自分类Dev

如何在CodeMirror中添加关键字(并更改其颜色)?

来自分类Dev

如何在php中手动添加描述和关键字?

来自分类Dev

如何使用IN关键字?

来自分类Dev

“ is”关键字如何工作?

来自分类Dev

如何开发关键字?

来自分类Dev

“ this”关键字如何工作?

来自分类Dev

Dart中的“ with”关键字

Related 相关文章

  1. 1

    “类型”是JavaScript中的关键字吗?

  2. 2

    如何使用'with'关键字添加?

  3. 3

    将关键字排除添加到 jQuery 中的 indexOf 关键字匹配

  4. 4

    读取txt文件中的关键字,并打印添加文本+关键字

  5. 5

    out关键字与类型协方差如何关联?

  6. 6

    了解Scala中的“类型”关键字的作用

  7. 7

    参数类型的构造函数中“ where”关键字的用途

  8. 8

    Sikuli类型方法是Scala IDE中的关键字

  9. 9

    如何使用Django添加meta关键字

  10. 10

    如何在类css中使用特定关键字向所有div添加样式

  11. 11

    是否可以在vim modeline中添加关键字

  12. 12

    添加未在模板中显示的关键字

  13. 13

    在bash / shell中的关键字之后添加文本

  14. 14

    为什么TypeScript中的关键字关键字在2个“类型定义”中表现不同?

  15. 15

    为什么必须将async关键字添加到具有await关键字的函数中?

  16. 16

    为什么必须将async关键字添加到具有await关键字的函数中?

  17. 17

    svn pre-commit hook-如何在某些文件类型中阻止关键字?

  18. 18

    如何在MySQL的JSON数据类型列中按关键字分组

  19. 19

    如何在TypeScript自动导入中删除“类型”关键字?

  20. 20

    如何在lxml中添加python关键字术语作为标记属性?

  21. 21

    如何在CodeMirror中添加关键字(并更改其颜色)?

  22. 22

    如何在lxml中添加python关键字术语作为标记属性?

  23. 23

    如何在CodeMirror中添加关键字(并更改其颜色)?

  24. 24

    如何在php中手动添加描述和关键字?

  25. 25

    如何使用IN关键字?

  26. 26

    “ is”关键字如何工作?

  27. 27

    如何开发关键字?

  28. 28

    “ this”关键字如何工作?

  29. 29

    Dart中的“ with”关键字

热门标签

归档