【问题标题】:Eslint force to consume return valuesEslint 强制消耗返回值
【发布时间】:2021-08-04 23:53:38
【问题描述】:

我正在寻找可以用来强制使用函数返回值的 typescript 或 eslint 规则。例如

const getNum = () => 12

规则应该允许我调用它并存储值

const a = getNum()

但我应该做不到

getNum()

我目前正在尝试使用 neverthrow 或 ts-results 之类的库,此时如果我返回一个结果,消费者仍然能够在不处理错误的情况下调用函数,尤其是当 ok 部分只是一个成功的结果。

【问题讨论】:

    标签: javascript typescript error-handling eslint


    【解决方案1】:

    最接近您正在寻找的规则是no-unused-expressions,但根据您的问题,您似乎已经知道该规则。该网页包含了为什么它允许像getNum() 这样的理由;一个函数可能会返回一个值,同时也有一些副作用。一揽子不允许在不存储结果的情况下调用函数最终会产生大量代码,如下所示:

    const unused = callForSideEffects();
    // unused is... unused
    

    这很浪费(因为您要存储一个从未使用过的值)并且令人困惑(为什么要存储一个从未使用过的值?)

    【讨论】:

    • 我更多的是在研究这样的情况 ``` const error = functionWithSideEffectsOrFail() ``` 如果我不强迫自己抓住错误,我可能会默默地失败
    猜你喜欢
    • 2021-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多