2017-09-02 10 views
1

私はコードベースでこのコードブロックを見ていました。(これはTypeScriptの新機能です)私はそれを理解するのに少し問題があります。私が理解していないことはvoid = (page)です。 https://stackoverflow.com/a/34274584/513413によれば、=>の後に復帰タイプが来るのですが、私の場合はvoidです。だから= (page) => {}とは何ですか? 太い矢印の関数を書いていないと、その等価関数は何ですか?TypeScriptのFat arrow関数の後の "void =()=> {}"の意味は何ですか?

これはコードです:

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

'=(page)=> {}'は文字列(page)が何も返さない(void)と言う。 – Xaqron

+0

「太った矢印の機能」という用語は、数年間は時代遅れです。それらは単に「矢関数」と呼ばれます。 –

答えて

3

あなたは間違ってコードを見ています。一般的な構造は

private Name: Type = Value 

タイプ(page: string) => voidであり、値が(page) => {}あります。型は、navigateToが文字列を引数として受け取り、何も返さない関数であることを意味します。これは(page) => {}の機能です。

+0

Wowは私を見ていました...私の意見では、読みやすくするために 'interface'として書かれたほうがよいと思います –

+0

私はtypescriptについてよく分かりませんが、 {private} navigateTo:((page:string)=> void)=(page)=> {} ' –

+2

私は' interface'部分を取り戻します。 navigateTo(ページ:文字列):void {} ' –

2

Typescriptでは、タイピングは言語の文の内部に挿入され、少し変形します。

あなたが提出されたコードは、次のような次のようになります。

  • private navigateTo:この部分はstraighforwardです。現在のクラスの中にというnavigateToというプライベートメンバーを作成します。
  • ...: (page: string) => void:これはメンバーのタイプです。この場合、それはstringパラメータをとり、何も返さない関数(void)を表します。この部分は純粋にTypescriptです。
  • ... = (page) => { /* display page */ }:これは変数に割り当てられている実際の関数です。

Typescript Handbookを読むことをお勧めします。それは構文と言語に関する多くの情報を持っています。

関連する問題