【发布时间】:2013-04-19 06:26:18
【问题描述】:
如果我有这个 ts 模块:
export function say(){
console.log("said");
}
我使用 amd 选项编译它,我可以很容易地从 ts 客户端使用它:
import foo = module("tsmodule")
foo.say();
export var x = 123;
但是,如果我有与 ts 模块等效的 javascript:
define(["require", "exports"], function(require, exports) {
function say() {
console.log("said");
}
exports.say = say;
})
没有办法轻松使用它。最简单的解决方案:
// of course you can use .d.ts for requirejs but that is beside the point
declare var require:any;
// will fail with error module has not been loaded yet for context
// http://requirejs.org/docs/errors.html#notloaded
var useme = require("jsmodule")
useme.say();
export var x = 123;
import foo = module("tsmodule")
foo.say();
由于错误 http://requirejs.org/docs/errors.html#notloaded 而失败。由于“jsmodule”未传递给生成的打字稿中的定义调用。
我有两种解决方法
- 不要使用导入/导出(语言功能丢失)
- 使用 require([]) (仍然无法导出依赖于 require([]) 调用的内容)
有限制:https://github.com/basarat/typescript-requirejs。还有其他方法吗?如果不能,你可以在这里投票:https://typescript.codeplex.com/workitem/948 :)
【问题讨论】:
标签: requirejs typescript