我正在构建一个Web应用程序,其中开发不是基于TypeScript构建的,但是应用程序具有我想要使用插件样式的集成点 - 这就是使用TypeScript的地方。 TypeScript代码在第二个解决方案中,我将js文件复制到第一个解决方案中的文件夹。我正在使用require来加载所有内容。我有一个TypeScript文件的路径问题。我创建了require config
require.config({
paths: {
VideoProviderCommon: 'Scripts/VideoProvider/VideoProviderCommon',
VideoProviderManagerFactory: 'Scripts/VideoProvider/VideoProviderManagerFactory',
VideoProviderManager: 'Scripts/VideoProvider/VideoProviderManager'
},
shim: {
'VideoProviderCommon': { 'exports': 'VideoProviderCommon' },
'VideoProviderManagerFactory': { 'exports': 'VideoProviderManagerFactory' },
'VideoProviderManager': { 'exports': 'VideoProviderManager' }
}
});
我希望js文件在define中有 - 模块名称配置而不是路径,我怎么都无法编译TypeScript项目因为我得到编译错误 在
import common = require("VideoProviderCommon");
例如- 因为虽然我需要配置
但找不到模块define(["require", "exports"], function(require, exports) {
.....
var videoWorkItem = (function () {
function videoWorkItem() {
}
return videoWorkItem;
})();
exports.videoWorkItem = videoWorkItem;
});
答案 0 :(得分:1)
我创建了一个额外的打字稿文件来设置配置并将其包含在require.js文件之后:
<html lang="en">
<head>
...
<script data-main="Scripts/main" src="Scripts/require.js"></script>
<script src="Scripts/config.js"></script>
</head>
<body>...</body>
</html>
的index.html
在config.ts
:
requirejs.config({
baseUrl: "Scripts",
paths: {
jquery: "jquery-1.10.2"
}
});
config.ts
之后我能够像这样使用jquery:
import $ = require("jquery");
$(() => {
alert("Hello world!");
});
main.ts
注意:我通过NuGet
获得了require,jquery等的所有类型答案 1 :(得分:0)
要将JS文件导入打字稿文件,您有两种选择。要么自己定义外部模块,例如:
declare module "VideoProviderCommon"{
var foo:any;
export = foo;
}
或使用http://www.youtube.com/watch?v=4AGQpv0MKsA&hd=1
中所述的amd-dependency
标记