【发布时间】:2021-09-28 00:43:14
【问题描述】:
我正在尝试为具有 newable 函数的库添加类型,但发现它真的很难做到。
简单地说:
export default function Api<T>(opts?: Settings): Api<T>;
我得到 “只有一个 void 函数可以用 'new' 关键字调用”。我知道new 关键字在声明文件中有效,例如:
export default interface Api {
new<T=any>(opts?: Settings): Api<T>
}
这只是导出一个类型,正如编译器所说:“仅引用一个类型,但在这里用作值”。
我不能在这里使用类,因为 API 可以通过其他文件的插件进行扩展,并且类型声明合并不适用于类(我希望其他文件添加的方法能够也可以由他们自己的打字文件打字)。
我不知所措 - 有什么想法吗?
【问题讨论】:
-
图书馆在 npm 上是偶然的吗?
-
@Hcaertnit 它适用于 DataTables.net,但我需要更改类型以允许它现在可以以两种不同的方式初始化。有一个
newable函数可以工作,或者一个可以添加方法的类。后者似乎不可能,前者我不知道如何使它工作。
标签: typescript