Konwerter Flow na zwykły JavaScript — Numio
Adnotacje typu Strips Flow w celu uzyskania zwykłego JavaScript przy użyciu wtyczki typu flow-strip firmy Babel. Importy tylko typu i aliasy typów są usuwane, a następnie strona formatuje wynik za pomocą opcji Prettier.
Usuwasz Flow z projektu i potrzebujesz najpierw zwykłego JavaScript, zanim podejmiesz decyzję o przejściu na TypeScript.
Flow
JavaScript
Kiedy go używać
- Usuwasz Flow z projektu i potrzebujesz najpierw zwykłego JavaScript, zanim podejmiesz decyzję o przejściu na TypeScript.
- Musisz wkleić fragment typu Flow w miejsce, które akceptuje tylko standardowe JavaScript, takie jak konsola przeglądarki lub codepen.
Jak używać
- Wklej kod z adnotacją Flow (z nagłówkiem // @flow lub bez) do panelu Flow.
- Kod jest przetwarzany lokalnie w przeglądarce: recast analizuje go parserem Flow, a Babel usuwa typy.
- Skopiuj JavaScript z panelu wyjściowego.
Przepływ
// @flow
import type { Store } from './store';
import { createStore } from './store';
type State = { count: number };
export function first<T>(items: Array<T>): ?T {
return items.length ? items[0] : null;
}
const store: Store<State> = createStore(({ count: 0 }: State));
export default store;JavaScript
import { createStore } from "./store"
export function first(items) {
return items.length ? items[0] : null
}
const store = createStore({
count: 0,
})
export default storeSzczegóły i ograniczenia
Konwersja odbywa się lokalnie w Web Workerze w przeglądarce. Dane wejściowe nie są wysyłane na serwer konwersji. Wymagane moduły są pobierane przy pierwszym użyciu narzędzia.
Usuwane są tylko typy. Nowoczesna składnia, taka jak JSX, ?? lub pola klas nie są transpilowane.
Wynik jest ponownie formatowany za pomocą Prettier (podwójne cudzysłowy, bez średników), więc oryginalny styl nie jest zachowywany, a rzutowanie typu, takie jak ({ count: 0 }: State) traci dodatkowe nawiasy.
// Komentarz @flow dołączony do usuniętej deklaracji typu zostaje wraz z nią usunięty.
FAQ
Czy zachowuje JSX?
Tak. JSX jest analizowany i przekazywany w niezmienionej postaci, więc nadal potrzebujesz transformacji JSX, aby uruchomić wynik.
Co się dzieje z instrukcjami typu importu?
Są całkowicie usuwane. Regularny import pozostaje bez zmian.
Czy dane wyjściowe wymagają do działania Flow lub Babel?
Nie jest potrzebny żaden przepływ. Jeśli dane wejściowe używają JSX lub nowej składni, środowisko wykonawcze lub program pakujący musi nadal ją obsługiwać.