为什么TypeScript的方法需要一个变量作为返回类型?

时间:2017-12-15 20:41:50

标签: angular typescript

我是打字稿的新手,如果问题很愚蠢,请原谅我。

以下代码:

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;
//....

1 个答案:

答案 0 :(得分:2)

这实际上看起来像nav类的属性(不是方法),类型为Nav,由ViewChild修饰。把它放在一条线上让我觉得有点混乱。通过这种方式更容易看到它的作用:

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

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

您可以阅读有关装饰器here的信息。您可以装饰类,属性或方法,装饰器使用@decoratorName语法,就像在其他语言中一样。

编辑:

为了更清楚一点,在这种情况下ViewChild装饰工厂,基本上是一个返回装饰器的函数。所以你给这个函数Nav作为一个参数(这意味着Nav是一个类构造函数,我推测),它返回实际的装饰器。