TypeScript使用TSLint出现Unused expression error的解决咨询
解决TSLint的"unused expression, expected an assignment or function call"报错
这个报错是TSLint的no-unused-expression规则在起作用——它会揪出那些看起来"没用"的表达式:也就是既没有赋值给变量,也不是有意义的函数调用(或者说没有产生预期副作用的表达式)。虽然你的sessionStorage功能能正常运行,但TSLint认为这行代码的写法不符合规范,咱们来一步步解决它:
常见错误场景分析
最可能触发这个报错的两种情况:
- 你调用了
sessionStorage.getItem()但完全没使用它的返回值,TSLint判定这是无用代码; - 代码存在语法小瑕疵,比如多余的括号、逗号表达式,或者把函数调用放在了不符合规则的上下文里。
针对性修复方案
情况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
相关产品推荐
相关产品推荐

