2017-02-13 8 views
0

Я пытаюсь изучить Typcript & хочу использовать загрузчики модулей (system.js), но я вижу ошибку, которую я просто не могу решить. Без сомнения, я не настроил что-то правильно. У меня есть 2 файла, один из которых является модулем, который я хочу импортировать. Я попытался импортировать переменные &, но ошибка всегда есть. Если кто-нибудь может дать мне указатель относительно того, где я могу ошибаться, я был бы очень благодарен.Typcript beginner - Использование загрузчика модуля system.js с проблемой машинописного текста

enter image description here

У меня есть 2 файла вместе с index.html & tsconfig.json файл

index.html

<html> 
<head> 
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.7/system.js"></script> 
    <script> 
    System.import('main').then(function(m) {console.log(m)}); 
    </script> 
</head> 
<body> 
</body> 
</html> 

main.ts

import {anotherName} from './test'; 

let name: string = "bob"; 

console.log(name); 
console.log(anotherName); 

test.ts

export let anotherName: string = "Jeff"; 

main.js

System.register(["./test"], function (exports_1, context_1) { 
    "use strict"; 
    var __moduleName = context_1 && context_1.id; 
    var test_1, name; 
    return { 
     setters: [ 
      function (test_1_1) { 
       test_1 = test_1_1; 
      } 
     ], 
     execute: function() { 
      name = "bob"; 
      console.log(name); 
      console.log(test_1.anotherName); 
     } 
    }; 
}); 

tsconfig.json

{ 
    "compilerOptions": { 
     "target": "es5", 
     "module": "system", 
     "moduleResolution": "node", 
     "isolatedModules": false, 
     "jsx": "react", 
     "experimentalDecorators": true, 
     "emitDecoratorMetadata": true, 
     "declaration": false, 
     "noImplicitAny": false, 
     "noImplicitUseStrict": false, 
     "removeComments": true, 
     "noLib": false, 
     "preserveConstEnums": true, 
     "suppressImplicitAnyIndexErrors": true 
    }, 
    "exclude": [ 
     "node_modules", 
     "typings/browser", 
     "typings/browser.d.ts" 
    ], 
    "compileOnSave": true, 
    "buildOnSave": false, 
    "atom": { 
     "rewriteTsconfig": false 
    } 
} 

ответ

0

Вы должны сказать SystemJs для добавления. js 'к модулю na вы его даете.

System.defaultJSExtensions = true; 
+0

Это верно только в том случае, если вы * не * переписываете машинопись непосредственно с помощью SystemJS. Даже если вы не являетесь конфигурацией пакета, предпочтительнее установить 'defaultJSExtensions'. То есть вы должны настроить пакет и использовать параметр defaultExtension на уровне пакета со значением '' ts ''или' 'js" 'в зависимости от того, переписываете ли вы с SystemJS или нет. –

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