所以我正在尝试编写一个可以在node中使用的非常基本的模块。它产生了一个我不太确定如何解决的实例化错误。请原谅命名,我只是将这个例子放在一起,以便解决这个问题。
正在使用的模块:
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
选项编译模块。
不要将内部模块与node一起使用。这些是多余的。即删除"模块服务器"
其次,".js"部分即使对于普通 js 也是无效的,所以它应该是,
var serve = require("./Server");
第三,打字稿对外部模块使用导出/导入组合:
import serve = require("./Server");
PS :此视频可能会帮助您了解更多 http://www.youtube.com/watch?hd=1&v=KDrWLMUY0R0