【发布时间】:2017-01-30 01:42:56
【问题描述】:
我在官方文档here中遇到了new()关于泛型。
这里是代码上下文:
function create<T>(c: { new(): T; } ): T {
return new c();
}
上面的代码被转译成下面的 JavaScript 代码:
function create(c) {
return new c();
}
new() 是 JavaScript 中的非法语法。在 TypeScript 中是什么意思?
此外,{new(): T; } 是什么意思?我知道它必须是一种类型,但是如何呢?
【问题讨论】:
-
在接口或内联接口中使用它描述构造函数的签名。
-
@toskv new() 看起来像一个函数调用。为什么是构造函数的签名?
-
在 es5 中,实现类的方式是在函数实例中创建。这就是 new functionName() 的方法。
标签: javascript typescript