javascript循环依赖
我建了三个类分别为Stmt,IfStmt,WhileStmt,其中Stmt为基类,后两个为派生类我把他们分别保存在三个文件中,其中IfStmt,WhileStmt引入了Stmt文件,Stmt也引入了IfStmt,WhileStmt,然后在执行的时候出现了这个错误class extends value undefined is not a constructor or null
Stmt.ts
import { Stmt } from "./Stmt";
export class IfStmt extends Stmt {
static parse(source: string): void {
console.log("IfStmt.parse");
}
}
WhileStmt.ts
import { Stmt } from "./Stmt";
export class WhileStmt extends Stmt {
static parse(source: string): void {
console.log("WhileStmt.parse");
}
}
Stmt.ts
import { IfStmt } from "./IfStmt";
import { WhileStmt } from "./WhileStmt";
export class Stmt {
static parseStmt(source: string): void {
if (source === "if") IfStmt.parse(source);
else if (source === "while") WhileStmt.parse(source);
}
}
感觉这个需求还是挺常见的,除了全部写在一个文件里,还有没有什么好的办法。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
典型的反设计模式。
基类怎么能“预先”知道子类呢?
你现在放到基类的那坨代码,应该再抽一个工厂类出来,就是一个简单的工厂模式。