Home

Awesome

babel-plugin-flow-to-typescript

Babel plugin to convert Flow code into TypeScript

How to use

$ npm install -g @babel/cli @babel/core
$ npm install babel-plugin-flow-to-typescript

# you must use babel@^7.x.x
$ babel --version
7.4.4 (@babel/core 7.4.5)

$ babel --plugins babel-plugin-flow-to-typescript ${SRC_FLOW_FILE} -o ${DEST_TS_FILE}

Implementation status

Supported?SyntaxFlowTypeScript
Maybe typelet a:?numberlet a: number | null | undefined
Void typevoidvoid
Object typeObjectobject
Mixed typemixedunknown
Function type(A, B) => C(x1: A, x2: B) => C
Exact type{| a: A |}{ a: A }
Indexers{ [A]: B }{ [a: A]: B }
Existential typeMap<*, *>Map<any, any>
Opaque typesopaque type A = Btype A = B
Varianceinterface A { +b: B, -c: C }interface A { readonly b: B, c: C }
Type parameter boundsfunction f<A: string>(a:A){}function f<A extends string>(a:A){}
Cast(a: A)(a as A)
type/typeof importimport type A from 'module'import A from 'module'
$Keys$Keys<X>keyof X
$Values$Values<X>X[keyof X]
$ReadOnly$Readonly<X>Readonly<X>
$Exact$Exact<X>X
$Diff$Diff<X, Y>Pick<X, Exclude<keyof X, keyof Y>>
$PropertyType$PropertyType<T, k>T[k]
$ElementType$ElementType<T, k>T[k]
$Shape$Shape<T>Partial<T>
ClassClass<T>typeof T
typeof operatortypeof footypeof foo
JSX--
Tuple type[number, string][number, string]
Type aliastype A = stringtype A = string
Flow Ignore$FlowFixMeany
Interfacesinterface X { +prop: string }interface X { readonly prop: string }
Optional Membersa?.b...
Declare functionsdeclare function x(false): true;function x(x0: false): true;
Declare Class......