所以我正在尝试编写一个可以在节点中使用的非常基本的模块。它产生一个实例化错误,我不太确定如何解决。请原谅这个命名,我只是一起攻击这个例子,以便解决问题。
正在使用的模块:
module Server {
export interface iCalc {
add(x : number, y : number) : number;
mul(x : number, y : number) : number;
div(x : number, y : number) : number;
sub(x : number, y : number) : number;
}
export class ServerCalc implements iCalc {
constructor() {}
add( x : number, y : number) {
return x + y;
}
mul( x : number, y : number) {
return x * y;
}
div( x : number, y : number) {
return x/y;
}
sub( x : number, y : number) {
return x-y;
}
}
}
最基本的试验台:
/// <reference path='node.d.ts' />
/// <reference path='Server.ts' />
var serve = require("./Server.js");
var tmp = new serve.ServerCalc();
console.log(tmp.add(1,1));
注意我已经使用上面的方法尝试使节点可以访问该对象。我还尝试了下面的内容,遵循应该是更多的TypeScript习惯方法(但它会产生相同的错误):
/// <reference path='Server.ts' />
var tmp = new Server.ServerCalc();
console.log(tmp.add(1,1));
它产生的错误:
.../test.js:5
var tmp = new serve.ServerCalc();
^
TypeError: undefined is not a function
at Object.<anonymous> (.../test.js:5:11)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:901:3
正在使用--module commonjs
选项编译模块。
答案 0 :(得分:1)
首先不要将内部模块与节点一起使用。这些都是多余的。即删除“模块服务器”
其次,“。js”部分即使对于普通的j也是无效的,所以它应该是,
var serve = require("./Server");
第三,打字稿使用外部模块的导出/导入组合:
import serve = require("./Server");
PS:此视频可能会帮助您了解更多http://www.youtube.com/watch?hd=1&v=KDrWLMUY0R0