javascript - Flow-typekontrollytelse i VSCode


Jeg har laget et nytt prosjekt ved hjelp av create-react-app og ønsket å starte det med statisk typekontroll, det finnes nå to valg på markedet:

  • TypeScript
  • Flyt

Jeg vil på en måte gå for Flow bare fordi det også er laget av Facebook og burde (?) ha bedre støtte for et React-prosjekt.

Så det jeg sliter med er typsjekkingsytelsen i VSCode. Når jeg hadde opprettet prosjektet mitt, kjørte jeg følgende kommandoer:

  1. yarn add -D eslint-plugin-prettier husky prettier pretty-quick babel-eslint eslint-plugin-flowtype flow-bin eslint
  2. La til Airbnb React-stil: eslint --init
  3. Kjørte flow init
  4. Installert Flow-språkstøtte
  5. Deaktivert JavaScript- og TypeScript-språkstøtte som anbefalt
  6. La til følgende konfigurasjon i arbeidsområdeinnstillingene mine:

-

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

Min .eslintrc er som følger:

{
  "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 ser ut til å være ganske treg på maskinen min, jeg har lagt til en enkel funksjon i min App.js:

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

Og det tar opptil 10 sekunder å validere koden min, noe som er ganske irriterende. Finnes det en måte å få dette til å gå raskere på?

Kanskje det er verdt å starte med TypeScript og ikke bry seg med Flow?

Svar #1

Det er noen åpne spørsmål angående mulige minnelekkasjer og ytelsesrelaterte problemer med flow, noen lenker nedenfor:

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

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

Begge verktøyene er flotte og har sine fordeler og ulemper, jeg vil personlig anbefale å prøve TypeScript også og gjøre en sammenligning selv.

I min egen erfaring på en stor kodebase har jeg funnet TypeScript:

  • mer ytelsessterk
  • flere typer for eksterne biblioteker
  • større samfunn

Relaterte artikler