You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决ESLint规则@typescript-eslint/no-this-alias报错问题

解决@typescript-eslint/no-this-alias报错的方案

@typescript-eslint/no-this-alias规则禁止将this赋值给本地变量,目的是避免this的指向被混淆或意外修改。要在不忽略规则的前提下解决问题,只需重构代码逻辑,避开直接赋值this的操作:

重构后的代码

class LinkedList {
  value: number;
  next: LinkedList | null;

  constructor(value: number) {
    this.value = value;
    this.next = null;
  }

  reverse(): LinkedList {
    let prev: LinkedList | null = null;
    // 先处理当前节点(this),避免将this赋值给本地变量
    let currentNode: LinkedList | null = this.next;
    this.next = prev;
    prev = this;

    while (currentNode !== null) {
      const next = currentNode.next;
      currentNode.next = prev;
      prev = currentNode;
      currentNode = next;
    }

    return prev;
  }
}

重构思路

原代码将this赋值给current作为迭代起点,触发了规则报错。现在我们:

  • 先单独处理this节点:将它的next指向初始的null(即prev),再把prev更新为this
  • 把迭代起点改为this.next,后续循环逻辑和原代码保持一致,完成剩余节点的反转

这样既遵守了ESLint规则,又完全保留了链表反转的功能。

内容的提问来源于stack exchange,提问作者Yukinosuke Takada

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 04:07:04