【发布时间】:2017-09-29 06:15:48
【问题描述】:
我正在尝试在使用 angular-cli 创建的 angular 2 项目中使用第 3 方打字稿库(antlr - https://github.com/tunnelvisionlabs/antlr4ts)。它因此错误而失败 类构造函数 MyLexer 不能在没有 'new 的情况下被调用。如果你看下面的代码 sn-p ,它在调用 super(); 时失败了。而且 Lexer.js 位于 antlr 库的 node_modules 中。
我没有在我的项目中使用 babel,但我发现另一个 stackoverflow 帖子与我的 Babel error: Class constructor Foo cannot be invoked without 'new' 有类似的错误。它说由于 ES6 类的工作方式,您不能使用转译类扩展本机类。它是否也与我的问题有关?请指导。
代码 sn-p
let inputStream = new ANTLRInputStream("sometext");
let lexer = new MyLexer(inputStream); // it fails here
let tokenStream = new CommonTokenStream(lexer);
let parser = new MyParser(tokenStream);
MyLexer.ts(生成的代码)
export class MyLexer extends Lexer {
constructor(input: CharStream) {
super(input); // it fails here.
this._interp = new LexerATNSimulator(MyLexer._ATN, this);
}
// more code
}
Lexer.js(位于 node_modules 中)
class Lexer extends Recognizer_1.Recognizer {
constructor(input) {
super();
//more code
【问题讨论】:
标签: angular typescript antlr antlr4