【发布时间】:2021-11-21 23:40:21
【问题描述】:
是否有任何 ESLint 规则仅用于在 typescript 中编写纯函数?我只想在我的代码中编写纯函数。有谁知道我们如何做到这一点?
提前致谢
【问题讨论】:
-
我认为 ESLint 还不够先进,无法判断哪些函数是纯函数,哪些不是。
-
@VLAZ 从技术上讲,你可以做一些事情,比如不允许在函数内部使用
this(假设你是并且不应该使用全局变量),并且没有变量是未在函数参数上定义 -
@distante 是的。 是 a rule somebody made 但它是被禁止的东西的集合。作者还建议谨慎使用。它仍然不能确保函数是纯的。例如,调用
console.log()是不纯的,规则不会阻止它。如果不是,那么alert。如果不是,那么Math.random()。等等等等。它不会确保完全的纯度。 -
@VLAZ 我的意思是,pure 并不意味着重新实现语言特定的功能,但我明白你的观点和我评论中的缺陷。
-
@distante 不,我不是这个意思,因为这些必须重新实现。我的意思是这些是不纯的操作,在函数中使用一个会使函数不纯。但是没有真正的方法可以禁止使用它们。也没有用。这些也可以用于其他纯粹的应用程序而不会“妥协”。总纯度适合无聊的应用。即使是纯粹的功能性应用程序也希望使用用户数据或将某些内容输出到屏幕上,甚至可能有一些(伪)非确定性。纯操作可以控制杂质。
标签: javascript angular typescript eslint tslint