0.3.2 • Published 7 years ago
@voxylu/babel-plugin-flow-to-typescript v0.3.2
@voxylu/babel-plugin-flow-to-typescript
Babel plugin to convert Flow code into TypeScript
How to use
$ yarn add @babel/cli @babel/core
$ yarn add @voxylu/babel-plugin-flow-to-typescript
# you must use babel@^7.x.x
$ yarn babel --version
7.2.3 (@babel/core 7.2.2)
$ yarn babel --plugins @voxylu/babel-plugin-flow-to-typescript ${SRC_FLOW_FILE} -o ${DEST_TS_FILE}Implementation status
| Supported? | Syntax | Flow | TypeScript |
|---|---|---|---|
| ❎ | Maybe type | let a:?number | let a: number \| null \| undefined |
| ❎ | Void type | void | void |
| ❎ | Mixed type | mixed | {} |
| ❎ | Function type | (A, B) => C | (x1: A, x2: B) => C |
| ❎ | Exact type | {\| a: A \|} | { a: A } |
| ❎ | Indexers | { [A]: B } | { [a: A]: B } |
| ❎ | Existential type | Map<*, *> | Map<any, any> |
| ❎ | Opaque types | opaque type A = B | type A = B |
| ❎ | Variance | interface A { +b: B, -c: C } | interface A { readonly b: B, c: C } |
| ❎ | Type parameter bounds | function f<A: string>(a:A){} | function f<A extends string>(a:A){} |
| ❎ | Cast | (a: A) | (a as A) |
| ❎ | type/typeof import | import 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] |
| ❎ | typeof operator | typeof foo | typeof foo |
| ❎ | JSX | - | - |
| ❎ | Tuple type | [number, string] | [number, string] |
| ❎ | Exact type | {|a: T|} | {a: T} |
| ❎ | Type alias | type A = string | type A = string |