所以基本上我目前正在为typescript输入类型声明文件,到目前为止一切都还不错,但是我遇到了一些麻烦。我已经根据自己的调用方式设置了一个const作为对象或函数,因此我有两个接口和一个const声明。
第一个接口File
使用new()
和()
签名来更改它的类型(如果被称为函数或对象),否则它只是具有您可以调用的属性或函数的列表(有点像一堆静态类函数)。问题是当我将这些签名中的任何一个添加到接口时,它开始返回来自Function类型的属性。如果可能的话,这是我不希望发生的事情。
我尝试使用Exclude<>
或Pick<>
之类的方法,但是没有运气。
declare const File: File;
interface File
{
new(path?: String): FileObject;
(path?: String): FileObject | FolderObject;
}
我希望File.[property]
现在不返回任何内容,而是返回File.[apply() | arguments | bind() | call() | caller | length | prototype | toString()]
PS。 File().[property]
或new File().[property]
正常工作。
答案: 对于那些来到这里的人来说,在输入(2019/02/17)时,无法排除类似的属性。