簡體   English   中英

Angular/typescript 中純函數的 ESLint 規則

[英]ESLint rule for pure functions in Angular/typescript

在 typescript 中是否有僅編寫純函數的 ESLint 規則? 我只想在我的代碼中編寫純函數。 有誰知道我們該怎么做?

提前致謝

Purity Analysis等同於解決Halting Problem,因此一般情況下不能靜態地進行。 總會有無限多的功能,您的純度檢查器既不能證明它們是純的,也不能證明它們是不純的。

這意味着任何可能的純度檢查器只能做以下兩件事之一:

  • 謹慎行事,拒絕任何無法肯定證明它是純凈的 function。 這意味着純度檢查器不允許您編寫無限多的純函數。
  • 接受任何 function 不能肯定地證明它是不純的。 這意味着純度檢查器將允許您編寫無限多的不純函數。

真正做到這一點的正確方法是從頭開始設計語言、類型系統和庫,使其 100% 純凈。 然后,也只有到那時,您才有機會以合理的方式自動檢查純度。 當然,在一般情況下仍然無法檢查,但將語言、類型系統和庫設計為易於檢查有助於使檢查器更有用。

簡單的情況是設計一種語言,它首先不允許您編寫不純的函數,但這樣的語言不會非常有用。 正如 Haskell 的設計者之一所說:純程序所能做的就是讓 CPU 變暖。 對此有聽眾回應:讓CPU發熱其實也是一種副作用!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM