передать прямой модуль ES6 из индекса в приложение TypesScript

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

модуль конфигурации устанавливается непосредственно в 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 распознает модуль конфигурации, но компилятор TypeScript жалуется:

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

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


person dmudro    schedule 22.03.2016    source источник


Ответы (1)


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

person Michal Ostruszka    schedule 24.03.2016
comment
Где здесь вписывается директива 'allowjs? - person Vincent J; 01.05.2016