我有这段代码:
const BlockConstructors: Function[] = [
OBlock,
IBlock,
TBlock
];
function randomFromArray(array: any[]) {
return array[Math.floor( Math.random() * array.length )];
}
const BlockConstructor: Function = random(BlockConstructors);
const block: Block = new BlockConstructor();
我尝试从数组中绘制一个块构造函数,然后创建一个新对象,数组中的所有块构造函数都扩展了Block类。我收到错误:
不能对类型缺少调用或构造签名的表达式使用“new”。
为什么会出现此错误?
答案 0 :(得分:1)
您的代码不是自包含的,但这是简单的原因。
Function
不是new
- 能够的。 TypeScript中只有三件事可以是new
:
void
any
你真的想要第一个。
尝试从Function
切换到(new () => Block)
。