Typescript 在AMD模块项目中使用J库代替commonJS

Typescript 在AMD模块项目中使用J库代替commonJS,typescript,Typescript,我能够在Nodejs应用程序中使用这个库,但在需要使用amd模块的新项目中,我似乎无法让它工作 使用commonjs,我能够做到: ///<reference path="../../node_modules/j/misc/j.d.ts"/> var Excel = <J>require('J'); /// var Excel=require('J'); AMD的最新尝试我正在尝试: /// <amd-dependency path = "../../j/j"

我能够在Nodejs应用程序中使用这个库,但在需要使用amd模块的新项目中,我似乎无法让它工作

使用commonjs,我能够做到:

///<reference path="../../node_modules/j/misc/j.d.ts"/>
var Excel = <J>require('J');
///
var Excel=require('J');
AMD的最新尝试我正在尝试:

/// <amd-dependency path = "../../j/j" /> (the Library is in a different spot in this project)
private run(){
    var Excel = require('../../j/j');
    var array = Excel.readFile("D:\\file.xls");
}
//

编辑:

///
界面单元{
v
W
t:弦;
f:字符串;
ixfe:数字;
}
接口单元地址{
c:数字;
r:数字;
}
接口小区范围{
s:手机地址;
e:手机地址;
}
界面工作表{
[键:字符串]:单元格;
}
界面工作表{
[键:字符串]:工作表;
}
接口工作簿{
SheetNames:string[];
工作表:工作表;
}
接口J{
解析_xlscfb(cfb:CFBContainer):工作簿;
阅读
readFile(文件名:string):任意;
UTIL:{
encode_col(col:number):字符串;
编码_行(行:编号):字符串;
编码单元(单元:单元地址):字符串;
编码范围;
解码列(列:字符串):数字;
解码_行(行:字符串):编号;
拆分单元(单元:字符串):字符串[];
解码单元(单元:字符串):单元地址;
解码范围(单元格:字符串):单元格范围;
工作表到csv(工作表:工作表):字符串;
get_公式(工作表:工作表):字符串[];
制作csv(工作表:工作表):字符串;
工作表到行对象数组(工作表:工作表):对象[];
};
详细:数字;
循环流化床:循环流化床;
主要的;
}
编辑试用答案: 已尝试将模块添加到d.ts文件的顶部

///<reference path='misc/cfb.d.ts'/>

declare module 'J'{
    var j: J;
    export = j;
}
///
声明模块“J”{
var j:j;
出口=j;
}

您从哪里获得j.d.ts
?您应将其更新为包括:

declare module 'J'{
    var j:J;
    export = j; 
}
然后你可以做:

import Excel = require('J');
注意import而不是var。这样,您可以使用
--module commonjs
为节点编译,使用
--module amd
为requirejs编译


更多:

其中一个库有一个d.ts,我想我对它做了一点修改。我会试试你的建议我贴了我的d.t.I我仍然很好奇为什么它一开始不起作用。我看了你的视频,听起来不同的模块应该是兼容的。(谢谢)
import Excel = require('J');