无法使用节点+ TypeScript从导入的模块实例化对象?

吉部

因此,我正在尝试编写一个可以在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选项进行编译

巴萨拉特

首先,不要将内部模块与节点一起使用。这些是多余的。即删除“模块服务器”

其次,即使是普通js,“。js”部分也是无效的,所以它应该是无效的,

var serve = require("./Server");

第三,打字稿对外部模块使用export / import组合

import serve = require("./Server");

附注:此视频可能有助于您了解更多http://www.youtube.com/watch?hd=1&v=KDrWLMUY0R0

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章