5
如果我有这样的TS模块:打字稿AMD执行不好的JavaScript/RequireJS
export function say(){
console.log("said");
}
,我采用了AMD选项编译它,我可以从一个TS客户很容易地使用它:
import foo = module("tsmodule")
foo.say();
export var x = 123;
但是,如果我有JavaScript相当于ts模块:
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”没有传递给生成的打印稿中的define调用。
两个解决方法我有
- 不使用导入/导出(语言功能丧失)
- 使用要求([])(尚不能导出的东西,依赖于要求([ ])呼叫)
有限制:https://github.com/basarat/typescript-requirejs。有另一种方法吗?如果没有,你可以投票在这里:https://typescript.codeplex.com/workitem/948 :)
显然无证功能,并且不与我的TSC版本0.9.0阿尔法工作。让我卸载/安装到版本0.8 – basarat 2013-04-25 12:12:59
Aww拍摄,他们删除了这个0.9?!我使用0.8.1.1。 – thomaux 2013-04-25 12:20:09
在0.8.3中工作。但不是在0.9.0alpha – basarat 2013-04-25 12:47:51