2016-09-09 3 views

ответ

5

Я думаю, что этот вопрос не является специфичным для директив в angular2, это общий вопрос о ES6, машинописи и других современных компиляторах, которые используют SystemJS. Короткий ответ - это оболочка, созданная System.js для изоляции кода и ввода внешних зависимостей.

Этот код:

import { p as q } from './dep'; 

    var s = 'local'; 

    export function func() { 
    return q; 
    } 

    export class C { 
    } 

будет генерировать:

System.register(['./dep'], function($__export, $__moduleContext) { 
var s, C, q; 
function func() { 
    return q; 
} 
$__export('func', func); 
return { 
    setters: [ 
    // every time a dependency updates an export, 
    // this function is called to update the local binding 
    // the setter array matches up with the dependency array above 
    function(m) { 
    q = m.p; 
    } 
    ], 
    execute: function() { 
    // use the export function to update the exports of this module 
    s = 'local'; 
    $__export('C', C = $traceurRuntime.createClass(...)); 
    var moduleName = $__moduleContext.id; 
    } 
}; 
}); 

Здесь - System register вы можете найти более подробную Информацию по о разжижает вопрос.

Смежные вопросы