我在样例中使用了AMD (特别是RequireJS)和TypeScript来支持外部模块。下面是RequireJS加载的数据(通过main.ts -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.为了获得路由器和domReady依赖项,我不得不求助于常规RequireJS的define方法:
define(['angular',
'domReady',
'uiRouter'
], (angular, document, uiRouter) => {
angular.bootstrap(document, ['myApp'], {strictDi: true});
});任何想法,我如何才能使domReady和uiRouter作为TypeScript外部模块。
发布于 2015-07-06 07:52:41
我怎么才能把domReady和uiRouter作为TypeScript的外部模块呢?
HotFix
创建一个包含以下内容的文件vendor.d.ts:
declare module "uiRouter" {
var dummy:any;
export = exp;
}
declare module "domReady" {
var dummy:any;
export = exp;
}或者,您可以为这些内容创建适当的环境声明,或者在DefinitelyTyped中查找这些内容。
https://stackoverflow.com/questions/30964535
复制相似问题