类型X不是'构造函数类型' (TS2507)

时间:2015-11-06 17:32:54

标签: typescript typescript1.6

在设计定义文件时,我遇到了这个错误(TS2507)。

如何指定类型为'构造函数类型' ?

2 个答案:

答案 0 :(得分:16)

如果要定义接口,可以声明它是一个类似的构造函数:

interface SomeInterface {
  new(someParam: any): SomeInterface
}

当您为现有的JS库定义输入时,这非常有用。有关详细信息,请参阅this SO answer

答案 1 :(得分:-1)

好吧,如果您查看错误的原始定义(https://github.com/Microsoft/TypeScript/blob/master/tests/baselines/reference/classExtendingPrimitive.errors.txt),您会看到“未定义”在此错误消息中是硬编码的。 undefined永远不是一个有效的构造函数类型(即使在js中)。所以,我猜你不需要做任何事情,但要确保你传递一个有效的构造函数而不是未定义的resp。空值。可以在此处找到此类问题的示例:https://www.codecademy.com/forum_questions/52f67024282ae3a0890009b0