Я использую AMD (в частности, RequireJS) вместе с TypeScript в моем образце для поддержки внешних модулей. Вот main.ts
, который RequireJS загружает (через атрибут data-main):
/// <reference path="../typings/tsd.d.ts" />
requirejs.config({
paths: {
jquery: '../bower_components/jquery/dist/jquery',
angular: '../bower_components/angular/angular',
uiRouter: '../bower_components/angular-ui-router/release/angular-ui-router',
domReady: '../bower_components/requirejs-domready/domReady"
},
shim: {
angular: {
deps: ['jquery'],
exports: 'angular'
},
uiRouter: {
deps: ['angular']
}
},
deps: ['bootstrapper']
});
и вот файл bootstrapper.ts
(не в рабочем состоянии), который загружает приложение:
import angular = require('angular') // works fine
import uiRouter = require('uiRouter') // VS Code throws error. External module not found.
import domReady = require('domReady') // Same error as above.
angular.bootstrap(domReady, ['myApp'], {strictDi: true}); // Not working due to domReady.
Мне приходится прибегать к использованию обычного метода RequireJS define
, чтобы получить зависимости маршрутизатора и domReady:
define(['angular',
'domReady',
'uiRouter'
], (angular, document, uiRouter) => {
angular.bootstrap(document, ['myApp'], {strictDi: true});
});
Любые идеи, как я могу сделать domReady и uiRouter внешними модулями TypeScript.