在接口声明中,括号是什么意思?

时间:2016-12-01 16:27:08

标签: typescript

一个例子:

interface IResourceService {
    (url: string, paramDefaults?: any,
        actions?: any, options?: IResourceOptions): IResourceClass<IResource<any>>;
}

语法(variable: type): Type;是什么意思?我该如何实现这个界面?

2 个答案:

答案 0 :(得分:3)

他们宣布一个功能。

这是一个可以直接调用的接口,指定了params和return类型。请记住,TS接口不是具体的:你不能实例化它们,你不能直接引用它们(例如,foo instanceof interfaceFoo是非法的),它们不会出现在输出代码中。

TS接口只是定义对象预期形状的契约。使用foo参数可以很容易地调用该形状并返回bar。&#34;

这是briefly covered in the docs

  

为了描述带有接口的函数类型,我们为接口提供了一个调用签名。这就像一个函数声明,只给出了参数列表和返回类型。参数列表中的每个参数都需要名称和类型。

答案 1 :(得分:2)

只是想补充一点,你也可以使用a type alias来做同样的事情:

type IResourceService =
    (url: string, paramDefaults?: any,
        actions?: any, options?: IResourceOptions) => IResourceClass<IResource<any>>;

而且(在我看来)它更具可读性。