2016-08-09 9 views
2

3つの言語を1つのAngular-2プロジェクトに混在させることは可能ですか?アプリケーションをTypescriptで作成し、コンポーネントをDartに、JSを別のコンポーネントに書き込みますか?角2:ミックスTypescript、JavascriptおよびDart

答えて

3

JS です。 TypeScriptはJavaScriptのスーパーセットですが、Angular2 JSライブラリを使用してコンポーネントを構築すると、これらのコンポーネントがTSで構築されたコンポーネントでは動作しない可能性があります(ここでは完全にはわかりません)。

ダーツと他の2つのダーツを混在させることは間違いありません。

ダーツAngular2アプリケーションは、全体として構築されていることが前提ですが、これはJSコンポーネントまたはTSコンポーネントに混在しても機能しません。

実行できることは、それぞれが異なる言語で構築された3つのルートコンポーネントをブートストラップすることですが、言語を混在させる1つのルートコンポーネント内では動作する可能性は低いです(上記参照)。

+0

私は質問をしました。なぜなら、私はDart(これは私が言語として好むでしょう)のいずれかでプロジェクトを始めることに決めなければならないからです。 TSやJSで利用できるすべてのコンポーネントがDartで利用できるわけではありません。 これに関するアイデアや推奨事項はありますか? – mik

+2

DartのAngular2は現在、GitHubリポジトリの分割と、プロジェクトのインフラストラクチャやものの設定に関する進行中の作業のために、少し遅れています。現在のAngular2 DartのバージョンはTS beta.17に似ています。 Angular2 Dartの素材とブートストラップコンポーネントは、TSバージョンのかなり後ろにあります。 DartがあなたのためにDartを選ぶという熱意をさらに深める必要があります。Dartの議論は現在弱いです。私はまだダーツをTSからTSに切り替えることを考えていません。 –

1

はい、すべてがJSに翻訳されるので可能ですが、そのようにすることはお勧めしません。 このような組み合わせを避ける理由は、コードを維持するのが難しいためです。これらの言語のそれぞれは、独自のパターンと方法を持っています。それらを混在させることで、冗長な抽象とマッピング(例えば、Dartのコンポーネントのタイプスクリプトの入力)を作成する必要があります。単体テストは技術によって分離されます。ある日、もう1人の開発者をプロジェクトに追加する必要があると想像してください。これらの技術が1つしかない場合、求職者の検索と評価は、職務内容で単一のスキルを指定するのと同じくらい簡単です。しかし、あなたがそれらの3つを持っているとき、すべてのこれらのスキルを持つ開発者を見つけることは困難になります。この「忍者」を見つけても、ミックスをどのように使っているか教えてください。あなたは、ビルドスクリプトのすべてのハック/トリックを彼に説明し、次に、ある技術をいつ他のものより優先するのか、そしてなぜそれを好むのかを伝える必要があります。 TypeScriptはJSのスーパーセットであり、その機能はECMA標準に準拠しているため、TypeScriptを使用することをお勧めします。

関連する問題