我正在编写一个 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.js
的 main
键?
关于javascript - Node.js NPM 和 Typescript 无法从测试应用程序访问类函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47088297/