react-native中flow和eslint有什么区别?我应该使用哪一个?我可以同时使用两者吗?

时间:2019-03-18 05:52:41

标签: react-native flowtype

我被要求在我的项目中以本机使用静态分析器。因为我已经在使用Eslint了,所以它更漂亮,它还有助于识别编译时错误,然后我在react-native中找到了进行静态分析的流程。

这让我感到困惑,因为eslint做类似的工作。

,我没有发现流量与附加费之间的区别。所以我的问题是

  1. 陪同和流程解决相同的目的吗?
  2. 如果不是,那么何时使用eslint以及何时使用flow
  3. 我可以同时使用流量和陪同吗?

2 个答案:

答案 0 :(得分:2)

Flow是javascript的类型检查器,它可以确保您根据函数甚至在运行代码之前便已提供的信息来传递函数或分类正确的信息类型。

ESLint是短毛绒

  

Lint或linter是一种用于分析源代码以标记编程错误,错误,样式错误和可疑结构的工具。

     

https://en.wikipedia.org/wiki/Lint_(software)

因此ESLint有一长串预定义的规则,您可以根据自己的喜好进行调整,使您可以在运行错误之前捕获错误,无论是语法,代码样式还是不良做法。

因此,总结一下,每个程序都试图解决两个不同的问题,因此可以独立使用,一起使用,或者都不使用。

答案 1 :(得分:1)

  
      
  1. 陪同和流程解决相同的目的吗?
  2.   

是的。我认为他们有相同的最终目的(并不意味着他们解决了相同的问题)。通过警告丑陋/错误的语法代码,帮助程序员意识到可能在键入/编码阶段导致错误的错误/风险代码。因此,它将减少运行时错误。

  
      
  1. 如果不是,那么何时使用eslint以及何时使用flow
  2.   
  • ESLint是一个短毛猫 https://eslint.org/docs/about/
      

    代码分析是一种静态分析,经常用于   查找不符合某些样式的有问题的模式或代码   准则。大多数编程语言都有代码lint,并且   编译器有时会将棉绒纳入编译过程。

ESLint检查规则更像约定规则。

  • Flow是静态类型检查器 https://flow.org/en/docs/getting-started/
      

    Flow是您的JavaScript代码的静态类型检查器。它做很多   工作使您的工作效率更高。使您的编码更快,更智能,   更自信,规模更大。

         

    Flow通过静态类型注释检查代码是否存在错误。   这些类型使您可以告诉Flow您希望代码如何工作,以及   Flow将确保它能正常工作。

它与ESLint有点相同,但是要重点关注类型注释。

  • 如果要在约定级别上减少JS中的错字/风险/丑陋的代码->需要ESLint。
  • 如果您想将粘性类型添加到JS代码中,并且其他程序员不会以错误的方式使用您的代码-> Flow
  
      
  1. 我可以同时使用流量和陪同吗?
  2.   

是的。我正在使用@ babel / preset-flow和eslint-config-airbnb。

P / s:在我看来,ESLint是必不可少的。可以考虑使用Flow / TypeScript