2016-12-01 75 views
2

一個例子:在接口聲明中,括號是什麼意思?

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

是什麼語法(variable: type): Type;是什麼意思?我怎樣才能實現這個接口?

+0

https://www.typescriptlang.org/docs/handbook/interfaces.html#function-types – Paleo

回答

2

他們聲明瞭一個函數。

這是一個可以直接調用的接口,帶有指定的參數和返回類型。請記住,TS接口不具體:您不能實例化它們,您不能直接引用它們(例如,foo instanceof interfaceFoo是非法的),並且它們不會出現在輸出代碼中。

TS接口只是定義對象預期形狀的契約。該形狀可以很容易地用「foo params」調用並返回bar。「

這是briefly covered in the docs

爲了描述函數類型有一個接口,我們給調用接口簽名。這就像一個只有參數列表和返回類型的函數聲明。參數列表中的每個參數都需要名稱和類型。

1

只是想補充一點,你也可以用a type alias做同樣的:

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

和(在我看來)這是更具可讀性。

相關問題