javascript - Flow typkontrollprestanda i VSCode


Jag har byggt ett nytt projekt med create-react-app och ville starta det med statisk typkontroll, det finns nu två val på marknaden:

  • TypeScript
  • Flöde

Jag vill på ett sätt följa Flow bara för att det också är byggt av Facebook och borde(?) ha bättre stöd för ett React-projekt.

Så det jag har problem med är typtäckningsprestanda i VSCode. När jag skapade mitt projekt körde jag följande kommandon:

  1. yarn add -D eslint-plugin-prettier husky prettier pretty-quick babel-eslint eslint-plugin-flowtype flow-bin eslint
  2. Lade till Airbnb React-stil: eslint --init
  3. Körde flöde init
  4. Installerat flödesspråksstöd
  5. Inaktiverade JavaScript- och TypeScript-språksstöd som rekommenderat
  6. Lade till följande konfiguration i mina arbetsytans inställningar:

-

{
  "flow.useNPMPackagedFlow": true,
  "flow.pathToFlow": "${workspaceRoot}/node_modules/.bin/flow"
}

Min .eslintrc är som följer:

{
  "extends": ["airbnb", "plugin:flowtype/recommended"],
  "plugins": ["prettier", "flowtype"],
  "parser": "babel-eslint",
  "env": {
    "browser": true,
    "es6": true,
    "jest": true,
    "node": true
  },
  "rules": {
    "react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }],
    "prettier/prettier": [
      "error",
      {
        "printWidth": 80,
        "singleQuote": true,
        "useTabs": false,
        "tabWidth": 2,
        "semi": true,
        "bracketSpacing": true
      }
    ]
  },
  "settings": {
    "import/resolver": {
      "node": {
        "paths": ["src"]
      }
    }
  }
}

Men Flow verkar vara ganska långsamt på min dator, jag har lagt till en enkel funktion i min App.js:

const sum = (a: number, b: number) => a + b;
sum(1, '12323');

Och det tar upp till 10 sekunder att validera min kod vilket är ganska irriterande. Finns det ett sätt att påskynda detta?

Kanske är det värt att börja med TypeScript och inte bry sig om Flow?

Svar #1

Det finns några öppna frågor angående möjliga minnesläckor och prestationsrelaterade problem med Flöde, några länkar nedan:

https://github.com/facebook/flow/issues/2152

https://github.com/flowtype/flow-bin/issues/70

Båda verktygen är bra och har sina för- och nackdelar, jag skulle personligen rekommendera att också ge TypeScript en chans och göra en jämförelse själv.

Enligt min egen erfarenhet på en stor kodbas har jag funnit att TypeScript:

  • mer prestandamässig
  • fler typer för externa bibliotek
  • större gemenskap

Relaterade artiklar