我这样创建了一个foo.ts:
class Foo{
public echo(){
console.log("foo");
}
}
并输出如下所示的javascript代码:
var Foo = (function () {
function Foo() {
}
Foo.prototype.echo = function () {
console.log("foo");
};
return Foo;
})();
我想在nodejs REPL中调用echo函数,但最终会出现如下错误:
$node
> require('./foo.js');
{}
> f = new Foo
ReferenceError: Foo is not defined
at repl:1:10
at REPLServer.self.eval (repl.js:110:21)
at Interface.<anonymous> (repl.js:239:12)
at Interface.EventEmitter.emit (events.js:95:17)
at Interface._onLine (readline.js:202:10)
at Interface._line (readline.js:531:8)
at Interface._ttyWrite (readline.js:760:14)
at ReadStream.onkeypress (readline.js:99:10)
at ReadStream.EventEmitter.emit (events.js:98:17)
at emitKey (readline.js:1095:12)
如何实例化该类并调用函数echo?
解决方法:
Node.js没有像浏览器窗口对象那样的全局泄漏.
要在node.js中使用TypeScript代码,您需要使用commonjs并导出类,即
class Foo{
public echo(){
console.log("foo");
}
}
export = Foo;
然后在REPL中:
$node
> var Foo = require('./foo.js');
{}
> f = new Foo();
要了解有关AMD / CommonJS的更多信息:https://www.youtube.com/watch?v=KDrWLMUY0R0&hd=1
原文地址:https://codeday.me/bug/20191121/2053133.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。