在Angular CLI中不能使用var或let outside函数

时间:2018-03-21 14:31:48

标签: angular

在我的Angular CLI组件中,在将变量定义为函数外部的“var”或“let”时出现错误。使用关键字“function”也会出错。如果我只是通过名字宣布它没关系。例如,在这个剥离的组件中:

import { Component } from '@angular/core';

@Component({
  selector: 'home',
  templateUrl: 'home.component.html',
  styleUrls: ['home.component.scss']
})
export class HomeComponent {
  constructor() {}

  var aaa = '1';       // nope
  let bbb = '2';       // nope
  ccc = '3';           // ok

  method1(){           // ok
    let ddd = '4';     // ok
  }

  function method2(){  // nope

  }

}

对于aaa,bbb和method2,它抛出错误:“[ts]意外的令牌。期望构造函数,方法,访问器或属性。”

我在这里做错了什么?我怀疑这是我项目的配置问题?

2 个答案:

答案 0 :(得分:2)

因为您的功能(组件,服务,管道等)是类。

在类中,使用访问器定义属性,而不是作用域范围的变量。

这将有效

export class MyComponent {
  private x;
  public y;
  protected z;

  public doSmth() {
    const b = 'B';
    return b;
  }
}

答案 1 :(得分:1)

您必须将该类的属性声明为publicprivate

export class HomeComponent {
  constructor() {}

  public aaa = '1';       
  private bbb = '2';    
  ccc = '3';           // <-- by default this is public

  method1(){           // ok
    let ddd = '4';     // ok
  }

  private method1(){  // Available only within the class

  }

  public method2(){  // Accessible outside the class

  }

}