2017-12-15 6 views
1

私はtypescriptに新しいです、質問がばかだと私を許してください。次のコードについてはなぜTypeScriptのメソッドは戻り値の型として変数を必要としますか?

import { Component, ViewChild } from '@angular/core'; 
//.... 
export class MyApp { 

    @ViewChild(Nav) nav: Nav; 
//.... 

私はNAVは戻り値の型であることを理解し、しかし、何がない "NAV:ナビ" とは?なぜ戻り値の型は変数として "nav"を必要としますか?私は、公式ドキュメントを見てみましたが、手がかりを見つけることができませんでした(おそらく私が間違って木にまで吠え) はこの同等の処理を行います。

import { Component, ViewChild } from '@angular/core'; 
//.... 
export class MyApp { 

    @ViewChild(nav: Nav) Nav; 
//.... 

答えて

2

これは実際にはプロパティ(ないメソッド)のように見えるのnavと呼ばれるタイプNavのクラスViewChildで装飾されています。 1行に入れると少し混乱します。それは、この方法をやってものを見るために簡単です:あなたはデコレータhereについて読むことができます

import { Component, ViewChild } from '@angular/core'; 
//.... 
export class MyApp { 

    @ViewChild(Nav) 
    nav: Nav; 
//.... 

。クラス、プロパティ、またはメソッドを飾ることができ、デコレータは他の言語と同様に@decoratorNameの構文を使用します。

EDIT:

ほとんど明確であるため、この場合には、ViewChildデコレータ工場、デコレータを返すbascially関数です。したがって、この関数には引数としてNavを指定します(これは、Navがクラスコンストラクタ関数であることを意味します)、実際のデコレータを返します。

+0

wow。私が間違った木で吠えることを知らせてくれてありがとう。 – GavinLuo

関連する問題