2016-04-12 18 views
2

Ben, Açısal JavaScript ve typescript için yeni ve https://angular.io/docs/js/latest/quickstart.htmlangular2 typescript performans

typescript derlenmiş 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 örneği app.component

de Angular2 öğretici ile oynuyorum. js

(function(app) { 
    app.AppComponent = 
    ng.core.Component({ 
     selector: 'my-app', 
     template: '<h1>My First Angular 2 App</h1>' 
    }) 
    .Class({ 
     constructor: function() {} 
    }); 
})(window.app || (window.app = {})); 

Bana göre Angular2'nin JavaScript sürümü çok daha kısa ve daha kolay anlaşılır. core_1_1 parametre olarak geçirilen ama bunu geçebilir nerede görmüyorum gibi typescript tarafından derlenen bir, yutmak biraz zor.

  1. Will typescript şöyle Yani benim sorular burada sürüm genellikle daha soyutlama katmanları daha yavaş olduğundan, JavaScript sürümünden daha yavaş çalışır?

  2. JavaScript'te öğreticinin hızlı başlatmanın dışında başka bir seçenek bulunmadığından, TypeScript, ileride gitmek için önerilen yoldur mu?

  3. Köşeli Açılışı modülleri kodlamak için TypeScript kullanırsam hata/hata ayıklama amacı dışında çok derlenmiş JavaScript koduna dikkat etmem gerekir mi?

sayesinde

+0

Bunun nedeni, JS sürümünün ES2015'e derlenmesi, çünkü TypeScript'in ES5'e derlenmesidir? –

+0

no, standart js'deki sınıf, es2015 Sınıfı değil açısal çekirdek lib'in bir parçasıdır. Transpill kodun mükemmelliği ile ilgileniyorsanız https://benchmarkjs.com/ sayfasına bir göz atın. – atmd

cevap

2

typescript gerçekten aşırı okunabilirliği sonrası derleme için tasarlanmamıştır ve makine-derlenmiş kod her zaman iyi yazılmış-by-a-insan daha kod (AI kadar okumak zor olacak bizim işimizi alır). Yani sorularınızı yanıtlamak için:

  1. ben büyük hız yararları veya dezavantajları her iki şekilde göstermek herhangi bir performans testlerinin yapıldığının farkında değilim. Bu günlerde JS sözdizimindeki küçük farklılıklar bir şekilde bir darboğaz olmayacak gibi görünüyor. Verimsiz algoritmalar, sabit repaints, yavaş ağ, vb. Çok daha fazla dikkat çekicidir.

  2. Köşeli takım, TypeScript için zorlanıyor gibi görünüyor. TBD, eğer buna yetişecekse, ama istedikleri kadar zorlamak için kaynakları var.

  3. Özellikle değil. TypeScript'in temel faydası, normal JS'deki gibi veri türlerinizle bütünüyle nilly olamayacağınızdır. Teoride, bu, hata ayıklaması daha kolay olan daha az hata ile sürdürülebilen bir koda yol açar. Nihayetinde tercih ettiğiniz hata ayıklama yöntemlerine inecektir, ancak hata mesajları TypeScript ile daha şifreli değildir.