2016-10-27 2 views

ответ

2

Это происходит потому, что TypScript не знает объект System.

Установите SystemJS типизации

npm install @types/systemjs --save-dev 

Добавить ссылку на типизации в вашем tsconfig.json под types

tsconfig.json

"typeRoots": ["node_modules"] 
"types": ["system"] 

Конечно, если вы собираетесь работать этот код в браузере, вы также должны иметь SystemJS сценарий связан в вашем приложении для System.import(), чтобы сделать что-нибудь:

index.html

<script src="node_modules/systemjs/dist/system.src.js"></script> 

Sidenote:

Чтобы получить максимальную производительность от вашего приложения, вы можете в конечном итоге хотите используйте ленивую загрузку (для загрузки только тех модулей, которые нужны пользователю). Путь вы загружаете другие модули (динамическую загрузку с System.import()) не может быть совместим с отложенной загрузкой: Here is the recommended way

Рассмотрит замену:

path: 'inbox', loadChildren:()=> System.import('../inbox/inbox.module') 

С:

path: 'inbox', loadChildren: 'absolute/path/to/inbox/inbox.module#InboxModule' 
+0

Beetlejuice, типом ошибкой все еще остается и я добавил таким образом «типы»: [ «hammerjs», «node», «source-map», «uglify-js», «webpa ск» ] }, "typeRoots": [ "node_modules"], "типы": [ "Система"], "исключить": [ "node_modules", "DIST" ], – MMR

+0

@nlr_p У вас есть две записи 'types'. Переместить 'system' в первую запись – BeetleJuice

+0

Использовать' SystemJS' не 'System' как глобальное имя, последнее устарело в области верхнего уровня. –

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