最近誰もがタイコを強制しています。それについては非常に多くのファンと記事があります。 AngularチームはTSでそのフレームワークを作っています。 しかし、ES6をTSに移行した私の経験は非常に残念でした。typescriptは十分に堅牢ですか?
私は比較的新しいコードベース(ES6で書かれている)を先月Typescriptに移行しようとしましたが、1トンの落とし穴に直面しました!
明らかに、私たちはmochaユニットテストでnode.jsアプリケーションを、ESLintは(バベルとトランジライルを使用して)構成されていることを話しています。
まず、noImplicitAny
オプションを設定すると、 に数百のエラーがあり、それを修正しました。しかし、その後、typescriptがstream
のようないくつかのnode.jsの定義済みモジュールを理解できないためにタイプミスが発生しました(多くのモジュールではタイピングが不足しているため実際には問題が大きくなりました)。
はその後、私はtypings
インストール - ライブラリd.ts
ファイルを管理するためのtsd
ツールの交換をお勧めしますが、それはstream
問題を解決しながら、それはいくつかの定義済みの型と重複するので、エラーの多くを追加、node
タイピングの定義です。
さらに、typescriptは実際にはES6の多くの機能を実際にES5にコンパイルしていないことがわかりました。 それは私に複雑なビルドプロセス(TS - >(typescript)ES6 - >(バベル)ES5)を強いることになり、元のソースマップを無駄にしなければならないということです。
上記のすべての設定には多くの時間がかかりました。
私は混乱しています。私は実際にtypescriptの背後にあるアイディアが大好きですが、実装は私にとってとても失礼なようです。私は間違っていると思う。
実際のプロジェクトでTypescriptを使用した人は、HelloWorldではなく、私が何を間違えているのか説明できますか?
ご回答ありがとうございます、@パレオ! 私は 'noImplicitAny'について大きな期待はありませんでした。タイプ定義でES6コードをリファクタリングするために一時的に設定しました。だから、全く問題ではありません。 ノードv4-5について - ES6の実行を許可しますが、 'let'キーワードなどには' strict mode'を必要とするなどの制限があります。また、純粋なNode.jsでES6モジュールを使用することもできません。 何か不足していますか? –
ノード5には、厳格を要求しないようにするフラグがあります。これらは、ノード5がTypescript '--use_strict --harmony --harmony_default_parameters --harmony_destructuring'で正しく動作するために使用するフラグです。ノード6をリリースしようとすると、その多くがデフォルトになります。 – ArcSine
@ Elessar.perm、TS 1.7以降では、 '--module'オプションをターゲット' es6'に関連付けることができます。 – Paleo