[Typescript] @typescript-eslint/unbound-method

It is useful to enable 

'@typescript-eslint/unbound-method': 'error',

because this kind of error is related to this keyword, sometime it is hard to notice during code review.

Avoid referencing unbound methods which may cause unintentional scoping of `this`.

If your function does not access `this`, you can annotate it with `this: void`, or consider using an arrow function instead.

class Endpoint {
 sendMessage() {
   ...
   this.sendEncodeMessage()
 }
    
 private sendEncodedMessage() {
  ...
 }
}
    
// Consumer
const {sendMessage} = endpoint; // instance of endpoint

// if you call sendMessage(), this keyword inside of function is undefined

 

Fix:

class Endpoint {
 sendMessage = () => {
   ...
   this.sendEncodeMessage()
 }
    
 private sendEncodedMessage = () => {
  ...
 }
}
    
// Consumer
const {sendMessage} = endpoint; // instance of endpoint

sendMessage() // works!

 

So be careful when using destructing syntax of a function call!

To avoid this kind of mistake, you can enable '@typescript-eslint/unbound-method': 'error',

posted @   Zhentiw  阅读(581)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2021-12-15 [Javascript] History API
2020-12-15 [Java Spring MVC] @PathVariable, @Vallidated, @PostMapping & @ResponseStatus
2020-12-15 [Java Spring] @Embeddable and @EmbeddedId
2019-12-15 [Algorithm] 53. Maximum Subarray
2018-12-15 [Algorithm] Breadth First JavaScript Search Algorithm for Graphs
2018-12-15 [Algorithm] JavaScript Graph Data Structure
2017-12-15 [Python] Read and plot data from csv file
点击右上角即可分享
微信分享提示