2017-09-02 59 views
1

我在我們的代碼庫中看到了這塊代碼(因爲我是TypeScript的超級新手)我在理解它時遇到了一些問題。我不明白的是void = (page)。根據https://stackoverflow.com/a/34274584/513413,退貨類型在=>之後,即在我的情況下爲void。那麼= (page) => {}說什麼? 如果我沒有用胖箭頭函數寫它,它的平等函數是什麼?在TypeScript中的胖箭頭函數之後,「void =()=> {}」的含義是什麼?

這是代碼:

private navigateTo: (page: string) => void = (page) => { 
    // display page 
} 
+0

'=(page)=> {}'表示字符串(頁面)轉到這個函數,它不返回任何東西(void)。 – Xaqron

+0

術語「胖箭頭功能」已過時數年。他們被簡稱爲「箭頭功能」。 – 2017-09-02 03:52:57

回答

3

您錯誤地看代碼。的一般結構是

private Name: Type = Value 

類型是(page: string) => void,值是(page) => {}。該類型意味着navigateTo是一個接受字符串作爲參數並且不返回任何內容的函數,這就是(page) => {}所做的。

+0

哇,我花了一段時間看...在我看來,我認爲這將更好地被寫爲一個'接口'爲更好的可讀性 –

+0

我不太瞭解打字稿,但我想它可以幫助,如果有人可以在括號中包裝類型:'private navigateTo:((page:string)=> void)=(page)=> {}' –

+2

我把'interface'部分放回去了,它可能會寫得更好:'private navigateTo(page:string):void {}' –

2

在Typescript中,typings被插入到語言的語句中,稍微轉換它們。

您提交的內容應爲這樣的代碼:

  • private navigateTo:這部分是簡單明瞭。我們創建一個名爲的私人成員navigateTo在當前類中。
  • ...: (page: string) => void:這是成員的類型。在這種情況下,它代表一個函數,參數爲string,不返回任何內容(void)。這部分純粹是打字稿。
  • ... = (page) => { /* display page */ }:這是分配給變量的實際功能。

我建議你閱讀一些Typescript Handbook。它有很多關於語法和語言的信息。

相關問題