繁体   English   中英

TypeScript - 如何动态创建 class?

[英]TypeScript - How to dynamically create class?

我有 2 节课:

class First {
  constructor(name, age) {
    // do something
  }
}

class Second {
  constructor(name, URL, topic) {
    // do something else
  }
}

现在,假设我有以下 function 将根据传递的参数(类名和类的参数(参数))创建这两个类之一的实例:

create(classname, params) {
  // return "new" instance of class ${classname} with params 
  // something like:
  // return new ${classname}(params)
}

知道如何实现吗? 有没有这样做的“TypeScript”方式? 当然,我想避免“if / else”语句甚至“switch case”方法。

谢谢哦/

感谢@kelly,我已经能够通过以下方式修复它:

  • 创建一个 object “类”,其中包含所有需要的对象
const classes = {
  First,
  Second
}
  • 使用以下
return new classes[classname as keyof typeof classes](params);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM