2016-04-12 17 views
2

私は、角度のJavaScript、および活字体に新しいですし、https://angular.io/docs/js/latest/quickstart.htmlangular2活字体性能

活字コンパイルapp.component.js

System.register(['angular2/core'], function(exports_1, context_1) { 
    "use strict"; 
    var __moduleName = context_1 && context_1.id; 
    var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { 
     var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; 
     if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); 
     else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; 
     return c > 3 && r && Object.defineProperty(target, key, r), r; 
    }; 
    var __metadata = (this && this.__metadata) || function (k, v) { 
     if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); 
    }; 
    var core_1; 
    var AppComponent; 
    return { 
     setters:[ 
      function (core_1_1) { 
       core_1 = core_1_1; 
      }], 
     execute: function() { 
      AppComponent = (function() { 
       function AppComponent() { 
       } 
       AppComponent = __decorate([ 
        core_1.Component({ 
         selector: 'my-app', 
         template: '<h1>My First Angular 2 App</h1>' 
        }), 
        __metadata('design:paramtypes', []) 
       ], AppComponent); 
       return AppComponent; 
      }()); 
      exports_1("AppComponent", AppComponent); 
     } 
    } 
}); 

JavaScriptの例のapp.component

でAngular2チュー​​トリアルで遊んでいます。 js

Angular2のJavaScriptバージョンははるかに短く、理解しやすいです。

  1. ウィル活字体は、次のようにcore_1_1がパラメータとして渡されたが、私はそれを渡すことができますどこに表示されないように活字体でコンパイル1は、飲み込むことが少し難しいです。

    だから私の質問がありますバージョンはJavaScriptバージョンよりも遅く実行されます。通常、抽象レイヤーが多いほど遅くなります。

  2. JavaScriptのチュートリアルはクイックスタート以外で利用できないため、TypeScriptは将来的におすすめの方法ですか?

  3. コーディングにTypeScriptを使用する場合、モジュールに角度を設定すると、エラー/デバッグ以外の目的でコンパイルされたJavaScriptコードを気にする必要がありますか?

おかげで、

+0

JSバージョンはES2015にコンパイルされていますが、TypeScriptはES5にコンパイルされていますか? –

+0

いいえ、標準jsのクラスは角コアlibの一部であり、es2015クラスではありません。翻訳されたコードのパーフォーマンスに興味がある場合は、https://benchmarkjs.com/をご覧ください。 – atmd

答えて

2

活字体は本当に極端な読みやすさのコンパイル後のために設計されていない、と機械コンパイルされたコードは、常に、よく書かれたバイヒト以外のコード(AIまで読み取ることが困難になります私たちの仕事にかける)。あなたの質問にお答えしてください:

  1. いずれの方法でも大きなスピードのメリットや欠点を示すパフォーマンステストはわかりません。最近では、JS構文のわずかな違いがボトルネックになる可能性はほとんどありません。非効率的なアルゴリズム、一定のペイント、低速のネットワークなどははるかに目立つ。

  2. Angularチームは、TypeScriptのために苦労しているようです。もしそれがうまくいくならば、しかし彼らは彼らが望む限りプッシュするための資源を持っています。

  3. 特にありません。 TypeScriptの主なメリットは、通常のJSのようなデータ型を使用することができないということです。理論的には、これによりデバッグが容易なエラーの少ない保守可能なコードが生成されます。最終的には、デバッグの好みの方法になりますが、エラーメッセージはTypeScriptではあまり意味がありません。