当前位置: 首页 > 面试题库 >

动态加载一个打字稿类(反映打字稿)

司空赞
2023-03-14
问题内容

我希望能够实例化一个Typescript类,在运行时可以获取该类和构造函数的详细信息。我想编写的函数将包含类名和构造函数参数。

export function createInstance(moduleName : string, className : string, instanceParameters : string[]) {
    //return new [moduleName].[className]([instancePameters]); (THIS IS THE BIT I DON'T KNOW HOW TO DO)
}

问题答案:

您可以尝试:

var newInstance = Object.create(window[className].prototype);
newInstance.constructor.apply(newInstance, instanceparameters);
return newInstance;

编辑 此版本可在TypeScript操场上使用,例如:

class Greeter {
    greeting: string;
    constructor(message: string) {
        this.greeting = message;
    }
    greet() {
        return "Hello, " + this.greeting;
    }
}

//instance creation here
var greeter = Object.create(window["Greeter"].prototype);
greeter.constructor.apply(greeter, new Array("World"));

var button = document.createElement('button');
button.innerText = "Say Hello";
button.onclick = function() {
    alert(greeter.greet());
}

document.body.appendChild(button);


 类似资料:
  • 我正在努力寻找 有什么不同?

  • 我正在typescript中创建一个类,该类的属性是ES6(ECMAscript 2016)映射,如下所示: 如何在打字稿中声明ES6 Map类型?

  • 问题内容: React事件的正确类型是什么。最初,我只是为了简单起见而使用。现在,我正在尝试清理并避免完全使用。 所以像这样一个简单的形式: 我在这里使用什么类型作为事件类型? 似乎没有工作,因为我收到一个错误消息,并且不存在。 对于所有事件的更笼统的回答,我们将不胜感激。 谢谢 问题答案: 该SyntheticEvent接口是通用的: 并且是一般约束与的交集 。 另外,由于事件是由输入元素引起的

  • 我试图在我的模型中添加一个静态方法,但是如果我这样做了,我得到了这个错误:< code >一个接口只能扩展一个类或另一个接口。 这是我的代码: 错误来自

  • 问题内容: 我不明白为什么找不到它。 导入组件文件。 是什么赋予了? 问题答案: 如果您不使用打字稿2.1,则应升级到它。似乎您使用的是@types中的2.x版本。 这是我现在正在使用的工作文件: 自从我解决了您遇到的同样问题以来已经过了几天,但我认为这里的关键是and 。

  • 问题内容: 我在这里找到了解决方案:Webpack和Typescript图像导入 但我为此得到错误: 我想我需要以某种方式强制导入,但无法弄清楚如何。我在React中做到这一点。我看到该属性定义为,这就是为什么会弹出错误。 这是代码: HTML: 并基于上述解决方案进行定义: tsconfig: 问题答案: 摆脱该错误的一种方法是通过按如下方式修改d.ts文件: 去掉 或者您可以执行以下操作: 更