我是打字稿的新手,如果问题很愚蠢,请原谅我。
以下代码:
import { Component, ViewChild } from '@angular/core';
//....
export class MyApp {
@ViewChild(Nav) nav: Nav;
//....
我知道Nav是返回类型,但是" nav:Nav"手段?为什么返回类型需要" nav"作为变量?我试着查看官方文件,但没有找到线索(也许我咆哮到错误的树木) 这相当于:
import { Component, ViewChild } from '@angular/core';
//....
export class MyApp {
@ViewChild(nav: Nav) Nav;
//....
答案 0 :(得分:2)
这实际上看起来像nav
类的属性(不是方法),类型为Nav
,由ViewChild
修饰。把它放在一条线上让我觉得有点混乱。通过这种方式更容易看到它的作用:
import { Component, ViewChild } from '@angular/core';
//....
export class MyApp {
@ViewChild(Nav)
nav: Nav;
//....
您可以阅读有关装饰器here的信息。您可以装饰类,属性或方法,装饰器使用@decoratorName
语法,就像在其他语言中一样。
编辑:
为了更清楚一点,在这种情况下ViewChild
是装饰工厂,基本上是一个返回装饰器的函数。所以你给这个函数Nav
作为一个参数(这意味着Nav
是一个类构造函数,我推测),它返回实际的装饰器。