typescript - 具有访问修饰符的成员异步箭头函数的正确语法是什么?
问题描述
出于某种原因,这可以编译,但是在尝试监视该函数时,开玩笑的测试无法识别该函数。
export default class Example {
public memberFunction = async (
parameter1: string,
body: MemberFunctionRequestBody,
): Promise<MemberFunctionResponse> =>
await someAsyncAction();
}
没有修饰符它工作正常
export default class Example {
memberFunction = async (
parameter1: string,
body: MemberFunctionRequestBody,
): Promise<MemberFunctionResponse> =>
await someAsyncAction();
}
或者,非箭头函数也可以,但我很想知道为什么它不能作为箭头函数工作。
export default class Example {
public async memberFunction (
parameter1: string,
body: MemberFunctionRequestBody,
): Promise<MemberFunctionResponse> {
return await someAsyncAction();
}
}
监视这个的笑话测试看起来像
beforeAll(() => {
memberFunctionSpy = jest.spyOn(Example.prototype, 'memberFunction');
});
但它会引发运行时异常
无法窥探 memberFunction 属性,因为它不是函数;改为未定义`
解决方案
推荐阅读
- c - AddressSanitizer 在更改 printf 后没有发现明显的泄漏
- rust - 不能将 X 作为不可变借用,因为它在可变闭包中也作为可变借用
- javascript - 加载外部 JS 不影响 TTI
- node.js - 无法在 Node.js 中解析 HTTP 响应正文
- java - 未选中的方法 'sort(List
)' 在 Java 11 中使用泛型调用 - sql - 如何解决 db2 代码:-104,SQL 状态:42601
- html - 如何在不使用背景图像属性的情况下覆盖图像英雄?
- javascript - 使用基于标题搜索的 JavaScript 修改 JSON 对象
- highcharts - 如何更改highchart中区域多边形的线宽?
- amazon-web-services - 应用程序负载均衡器 AWS 的 400 握手错误(Flask 和 Socket.io)