typescript - 打字稿“新(...args:任何[])=> T”与“{新(...args:任何[]):T}”
问题描述
new(...args: any[]) => T
我应该使用哪个和哪个有什么区别{ new(...args: any[]): T }
?
解决方案
它们是别名,它们都不支持静态文件:
class X {
static staticAttr = 42;
static method() { }
attr: string;
}
interface A {
Attr1: { new (...args): X }
Attr2: new(...args: any[]) => X
}
let fn = (arg: A) => {
arg.Attr1.staticAttr // Property 'staticAttr' does not exist on type 'new (...args: any[]) => X'
(new arg.Attr1()).attr;
(new arg.Attr2()).attr;
}
{ new(...args: any[]): T
由 TS 映射到new(...args: any[]) => T
. 所以我认为new(...args: any[]) => T
会更好,但差别不大
推荐阅读
- java - 错误:包android.support.v7.app不存在问题
- c# - 如何使用 MassTransit.IConsumer
? 预取计数>1 - .htaccess - 将文件夹和子文件夹重定向到新文件夹(不要携带任何子文件夹信息)
- python - 使用现有列将 lambda 应用于新列
- python - 区域 shapefile 中 NetCDF 中每个时间步的区域统计使用 Python 中的 rasterstats
- nginx - 请求到来时,nginx-ingress pod 不断崩溃 - AKS
- c# - NUnit 测试适配器发现测试:是否可以忽略项目?
- python - 如何搜索关键字并打印文件,仅打印关键字中的行
- linux - 如何将小于一页大小(4Kb)的Linux内核的特定物理地址范围映射到用户空间
- javascript - 发出在循环中写入文件并从临时目录中读取的问题