声明带有new()签名的接口,现在当我将该接口用作对象时,它为我提供了函数属性吗?

时间:2019-02-17 07:35:27

标签: typescript typescript-typings

所以基本上我目前正在为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)时,无法排除类似的属性。

0 个答案:

没有答案