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

TypeScript使用TSLint出现Unused expression error的解决咨询

解决TSLint的"unused expression, expected an assignment or function call"报错

这个报错是TSLint的no-unused-expression规则在起作用——它会揪出那些看起来"没用"的表达式:也就是既没有赋值给变量,也不是有意义的函数调用(或者说没有产生预期副作用的表达式)。虽然你的sessionStorage功能能正常运行,但TSLint认为这行代码的写法不符合规范,咱们来一步步解决它:

常见错误场景分析

最可能触发这个报错的两种情况:

  1. 你调用了sessionStorage.getItem()但完全没使用它的返回值,TSLint判定这是无用代码;
  2. 代码存在语法小瑕疵,比如多余的括号、逗号表达式,或者把函数调用放在了不符合规则的上下文里。

针对性修复方案

情况1:调用getItem但未使用返回值

如果你的代码类似这样:

// 错误示例:getItem返回值未被使用
sessionStorage.getItem('user-id');

有两种修复方式:

  • 方式一:将返回值赋值给变量(哪怕你暂时不用,TSLint也会认可这个表达式的意义):
    const userId = sessionStorage.getItem('user-id');
    
  • 方式二:若确实不需要返回值,临时禁用该行规则:
    // tslint:disable-next-line:no-unused-expression
    sessionStorage.getItem('user-id');
    

情况2:调用setItem却触发报错

正常来说sessionStorage.setItem('key', value);这种标准函数调用不会触发报错,大概率是写法有小问题:

  • 比如不小心加了多余的括号:
    // 错误示例:多余括号导致TSLint误判
    (sessionStorage.setItem('theme', 'dark'));
    
    修复:去掉多余括号即可:
    sessionStorage.setItem('theme', 'dark');
    
  • 或者写了多余的逗号表达式:
    // 错误示例:逗号后的表达式无意义
    sessionStorage.setItem('theme', 'dark'), someUnusedVar;
    
    修复:删除多余部分,或整理好需要的逻辑。

极端情况:直接禁用该规则

如果你觉得这个规则对项目不适用,可以在tslint.json里禁用no-unused-expression:

{
  "rules": {
    "no-unused-expression": false
  }
}

不过不太推荐这么做——这个规则能帮你提前发现无用代码或笔误,尽量保留更稳妥。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:18:08