2016-03-22 7 views
1

Я хочу передать серверную визуализированную конфигурацию как модуль ES6 в приложение TypeScript, где его можно импортировать. используя загрузчик модуля SystemJS.Пропустить прямой модуль ES6 от индекса к приложению TypeScript

модуль конфигурации устанавливается непосредственно в index.html:

System.set(System.normalizeSync('config'), System.newModule({ foo: 'bar' })); // in the real scenario the { foo: 'bar' } is rendered by the server 

затем в main.ts

import { foo } from 'config'; 

это работает в браузере, как SystemJS распознает модуль конфигурации, но машинописи компилятор жалуется :

Не удается найти модуль 'config'.

Как сообщить TypeScript о «внешнем» пользовательском модуле, определенном в index.html?

ответ

2

Если config не является машинописным модулем (не содержит определений типов и т. Д.), То его нельзя импортировать как это (это похоже на импорт ES6, но на самом деле это не тот). Поэтому либо напишите файл d.ts и поместите его где-нибудь tsc можете найти его, либо попробовать импортировать его в виде «свободной формы» с let config = require('config'). Затем вы можете использовать его, но без каких-либо намеков и проверок типов.

+0

Письменный простой файл d.ts действительно исправил проблему. ура! – dmudro

+0

Где находится директива 'allowjs'? –