2017-07-02 77 views
0

.eslintrc看起来是这样的,我使用流程:反应/道具类型和流量

{ 
    "extends": [ 
    "plugin:flowtype/recommended", 
    "plugin:react/recommended", 
    "prettier", 
    "prettier/flowtype", 
    "prettier/react" 
    ], 
    "plugins": [ 
    "flowtype", 
    "react", 
    "prettier" 
    ], 
    "parserOptions": { 
    "ecmaVersion": 2016, 
    "sourceType": "module", 
    "ecmaFeatures": { 
     "jsx": true 
    } 
    }, 
    "env": { 
    "es6": true, 
    "node": true 
    }, 
    "rules": { 
    "prettier/prettier": ["error", { 
     "singleQuote": true, 
     "trailingComma": "none", 
     "bracketSpacing": true, 
     "jsxBracketSameLine": false, 
     "parser": "flow" 
    }] 
    }, 
    "settings": { 
    "flowtype": { 
     "onlyFilesWithFlowAnnotation": true 
    } 
    } 
} 

我仍然得到反应,即使我使用流动react/prop-types

这是正确的,我应该关掉它们吗?

回答

3

PropTypes用于运行时类型检查,而Flow用于静态类型检查。两者都是为了自己的目的,并不是所有的类型错误都可以在编译期间被捕获,所以PropTypes可以帮助你; Flow可以在与应用程序交互之前尽早发现一些错误,甚至可以将其加载到浏览器中。

+1

使用两者都是维修噩梦 – dagda1

+1

这是真的,但我已经在一个相当大的项目中使用了两者。在实践中,我们在某些部分使用了PropTypes,在其他部分使用了Flow。一个经验法则是将PropTypes与可重用(容器)组件一起使用,因为我们可以在这些容易发现的错误中找到错误,例如提供'id' prop作为字符串而不是数字。当我们将Ajax结果切换到组件时,通常会发生这些情况。另一方面,流程有助于检查功能(例如助手)的键入,并在组合和链接功能时保持它的一致性。 –