2016-08-19 4 views
3

TypeScriptからBabelに変換するプロジェクトがあることを考慮すると、ファイルにはBabelで無視できない型情報が含まれています。コードベースからTypeScript型の注釈とアサーションを削除する

TSタイプの注釈とアサーションをコードベース全体から自動的に取り除く方法を教えてください。

フローに変換する方法はありますか(一部のTSタイプの機能を変換できるものとできないものがあります)。

明らかに、これはregexpsでは得られません。

プロジェクトにはコード内に多くのTS/ES.next機能があり、可読性と編集可能と思われ、es6ターゲットはここではオプションではありません。

+0

あなたのtypescriptターゲットをes6に置くと、基本的にコンパイル時にタイプ注釈が取り除かれます。それはあなたの最初の質問に答えますか?あなたの2番目の質問については、私は考えていません。 –

+0

@PelleJacobs申し訳ありませんが、明示的に言及する必要があります。コードは良好な形状を維持する必要があります。トランスペアリングは、すべての書式設定とES.next機能を終了し、コードをES6の蒸し山に変換します。 – estus

+0

Hm。私はこれがあなたの唯一のオプションだとはかなり確信しています。 IMHOコンパイルされたコードはかなりまともですが、彼らはそれがjavascriptのコードスタイルを教えるために使用されていることを拡張するためにかなりの時間を費やしました。実際に十分でない場合は、githubプロジェクトで問題を開いてください。 –

答えて

7

これは実際には興味深い質問です。私はFlowチームにいるので、本当に良い答えを出したいと思っていますが、今は簡単ではありません。

まず、TypeScriptからFlowに切り替える理由を尋ねたいことがあります。既存のプロジェクトでは、切り替えに費やす価値があるかどうか検討する必要があります。

言われていることは、あなたがそれを価値があると思ったら、私は自分が一番良いと思うものを説明します。

インクリメンタル移行

明らかにすべてを停止し、書き換えが悪いアイデア™で、すべてを捨てて最初からやり直すことが悲劇だろう。これは、Flowを含むFacebookで構築したすべてのものの設計上の決定に入ります。フローは、アプリケーションを段階的に静的タイプに移行するように設計されています。

しかし、1つの静的型システムから別の静的型システムへの移行は少し異なります。物事はタイプを念頭に置いて作られているので、実際は少し楽になるかもしれません。

一度に1つのファイルを移動して、自分で仕事をするのに手間がかからないように、自分で切断してみてください。

フロー良いlibdefsを持って、できるだけ多くを推測するために設計されたが、それはアプリケーションで多くは、あなたがどこでも使用ライブラリのための素晴らしい定義を持つことがあるのに役立ちますものの一つです。

ここでは、libdefsをFlowに移行することに焦点を合わせ、そこに存在するものを見つけるか、独自のものを書くことに焦点を当てます。これについてもっと知りたければ、私はかなり手紙を書いた。in depth article about it

libdefsに投稿したことを確認してください。back to the community

ビルドシステムをセットアップ

活字体は、コンパイルを持っており、同じコンパイラに組み込まれているすべての型チェック。ただし、Flowはそれらを分割して複数のオプションがあります。 an interactive page for it hereの前にBabelをセットアップしたことがない場合は、ほとんどのものBabelをお勧めします。それが完了したら、私はthis guide about next stepsも書きました。私たちはあなたを助けるとフォロー他の人が同じを持っていないことを確認することができますように


それはあなたがこのプロセスでしゃっくりに直面しようとしていることが非常に可能性があります、私たちがそれらについて知っているように必ずしてください困難。

うまくいけば、これはあなたを助けてくれるでしょう。お楽しみください:)

+0

私はフローライブラリの定義を書くことについて質問があります。 '宣言'は実際に何をしていますか?それは必要ではないようです。残念ながら、私が出会ったGithubのこの問題に誰も答えなかったのは、同じ質問です。https://github.com/facebook/flow/issues/4053私が実際に私が何を理解していないのであれば、私は何も公開したくありません。やっている。私は '宣言'の文書は見つけられませんでした。 –

関連する問題