我正在閱讀有關 next-firebase-auth 的源代碼。
我對以下代碼語法感到困惑
export const useAuthUser: () => AuthUserContext
export const verifyIdToken: (token: string) => Promise<AuthUser>
右側看起來像一個箭頭函式。左邊是宣告變數。直覺上,我認為與以下相同:
export const useAuthUser = () => AuthUserContext
然而,事實并非如此。我在 Chrome 控制臺上做了一些測驗。這是代碼
adder : () => (a b)
當我按回車時,它顯示
() => (a b)
但是如果我輸入加法器,它會顯示
Uncaught ReferenceError: adder is not defined
我在這里看了其他帖子。似乎冒號 (:) 與型別注釋有關。那么這是否意味著右側是型別或介面?但是箭頭函式型別或介面如何?它沒有任何意義。
謝謝你的幫助!
uj5u.com熱心網友回復:
冒號后面的東西是型別。作為一種型別,() => AuthUserContext
意味著一個不需要任何引數并且回傳一個AuthUserContext
. (token: string) => Promise<AuthUser>
表示一個函式,它需要一個字串引數,然后回傳一個 Promise,該 Promise 將決議為AuthUser
您顯示的代碼行似乎不完整。通常,一個 const 將緊跟一個賦值,如下所示:
export const useAuthUser: () => AuthUserContext = () => {
// some code which returns an AuthUserContext
}
我在 Chrome 控制臺上做了一些測驗。
控制臺僅支持 javascript,不支持 typescript
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/495972.html
標籤:javascript 打字稿 句法