我有这样的代码:
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();我尝试从数组中绘制一个块构造函数,然后创建一个新对象,数组中的所有块构造函数都扩展了块类。我得到了错误:
不能对类型没有调用或构造签名的表达式使用“new”。
为什么会出现此错误?
发布于 2017-07-08 17:54:54
您的代码并不是独立的,但是下面是简化的原因。
Function不是new-able。在new中,只有三件事情可以在TypeScript中实现:
void的调用签名的类型any你真的想要第一个。
尝试从Function切换到(new () => Block)。
https://stackoverflow.com/questions/44988702
复制相似问题