javascript - Node.js NPM 和 Typescript 无法从测试应用程序访问类函数

标签 javascript node.js class typescript npm

我正在编写一个 NPM 包,以便可以重用一个类。包安装良好,可以加载该类,但是我无法访问该类中的函数。我正在使用 typescript,然后将其编译成 JS 类:

作为示例,编译输出。

---------------------------------    
FILE ./node_modules/test/index.js
---------------------------------
class Test{
    constructor(){

    }

    hello(name){
            console.log("Hello " + name);
    }
}
module.exports.Test = Test;  // Note I have also tried module.exports = Test

---------------
FILE: ./test.js
---------------
var test = require('test');

console.log(test) // ok, object is defined.

test.hello('THERE');  // error

---------------
# node test.js


// Error
test.hello('Hello');
^

TypeError: test.hello is not a function
at Object.<anonymous> (/Users/Tony/test/index.js:6:6)
at Module._compile (module.js:571:32)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:488:32)
at tryModuleLoad (module.js:447:12)
at Function.Module._load (module.js:439:3)
at Module.runMain (module.js:605:10)
at run (bootstrap_node.js:423:7)
at startup (bootstrap_node.js:1

最佳答案

我认为您需要创建类的实例来调用它的方法,对吧?也是如此:

var Test = require('test');
var test = new Test();
test.hello('THERE');

按预期工作吗?

如果没有,./node_modules/test 中的 package.json 是否有一个指向 index.jsmain 键?

关于javascript - Node.js NPM 和 Typescript 无法从测试应用程序访问类函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47088297/

相关文章:

javascript - 从对象数组中获取日期的最大值

javascript - 我如何使用 moment.js 添加天数,不包括周末?

python - 通过nodejs执行python脚本

node.js - 如何使用 Bull 和 Node.js 通过后台作业处理函数?

c++ - 如何将子类分配给基类?

java - 如何创建一个单独的类来处理 android 常见任务,例如创建进度对话框?

javascript - jquery替换td内容

javascript - D3.js-如何在放大分组条形图时裁剪矩形外的区域

node.js - 在 Angular2 中导入模块

c++ - 在成员函数中访问参数的类成员