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:
yarn add -D eslint-plugin-prettier husky prettier pretty-quick babel-eslint eslint-plugin-flowtype flow-bin eslint- La til Airbnb React-stil:
eslint --init - Kjørte
flow init - Installert Flow-språkstøtte
- Deaktivert JavaScript- og TypeScript-språkstøtte som anbefalt
- 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