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

enk*_*tor 8 typescript

一个例子:

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

语法(variable: type): Type;是什么意思?我怎样才能实现这个接口?

ssu*_*ube 7

他们声明了一个函数。

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

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

在文档中简要介绍

在 JavaScript 中,函数除了可调用之外还可以有属性。但是,函数类型表达式语法不允许声明属性。如果我们想用属性来描述一些可调用的东西,我们可以在对象类型中写一个调用签名


Nit*_*mer 5

只是想补充一点,您也可以使用类型别名来执行相同的操作:

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

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