Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何为该属性指定类型_Angular_Typescript - Fatal编程技术网

Angular 如何为该属性指定类型

Angular 如何为该属性指定类型,angular,typescript,Angular,Typescript,使用时,让编译后的代码变为var isTest=this.isTest | | false,正如您所期望的那样,但分配给此时,它变为: ngOnInit() { let isTest: boolean = this.isTest || false; this.isTest: boolean = this.isTest || false; } 并且还抛出了未定义布尔值的错误,这是有意义的 然而,我不明白的是,为什么我不能按照我现在的方式为这个属性定义一个类型 为什么会这样?正确的做法

使用时,让编译后的代码变为var isTest=this.isTest | | false,正如您所期望的那样,但分配给此时,它变为:

ngOnInit() {

  let isTest: boolean = this.isTest || false;

  this.isTest: boolean = this.isTest || false;
}
并且还抛出了未定义布尔值的错误,这是有意义的

然而,我不明白的是,为什么我不能按照我现在的方式为这个属性定义一个类型

为什么会这样?正确的做法是什么

编辑:

显然,您不能在方法内声明类成员,但@NitzanTomer给出的解决方案是否适用于Angular 2的组件输入属性

例如:

this.isTest;
boolean = this.isTest || true;

不能在方法内声明类成员,它应该是:

@Component({
  selector: 'test',
  inputs: [
    'isTest'
  ]
})

export class isTest implements OnInit {
  isTest: boolean;

  ngOnInit() {
    this.isTest = this.isTest || false;
  }
}
编辑 您还可以在构造函数中声明类成员,如下所示:

class YourClass {
    isTest: boolean;

    ngOnInit() {
        this.isTest = this.isTest || false;
    }

    ...
}
第二版 我不是一个角度开发人员,但根据示例,您似乎需要像我回答的那样做,只是您有时会用@Input装饰这些成员

:

或:


不能在方法内声明类成员,它应该是:

@Component({
  selector: 'test',
  inputs: [
    'isTest'
  ]
})

export class isTest implements OnInit {
  isTest: boolean;

  ngOnInit() {
    this.isTest = this.isTest || false;
  }
}
编辑 您还可以在构造函数中声明类成员,如下所示:

class YourClass {
    isTest: boolean;

    ngOnInit() {
        this.isTest = this.isTest || false;
    }

    ...
}
第二版 我不是一个角度开发人员,但根据示例,您似乎需要像我回答的那样做,只是您有时会用@Input装饰这些成员

:

或:


如果isTest是组件的输入,同样适用?我不确定你的意思,你能用一个例子编辑你的问题吗?另外,检查了我修改后的答案,我添加了另一种方法,可以用typescript声明类成员。我用一个例子更新了这个问题。是的,我知道如何在构造函数中实现它,但我不想把所有的东西都放在那里,因为就我所知,在我的例子中,这样做是错误的。我添加了如何在angular中实现它的示例。我从来没有用过angular,但谷歌有帮助。如果isTest是一个组件的输入,同样适用。我不确定你的意思,你能用一个例子编辑你的问题吗?另外,检查了我修改后的答案,我添加了另一种方法,可以用typescript声明类成员。我用一个例子更新了这个问题。是的,我知道如何在构造函数中实现它,但我不想把所有的东西都放在那里,因为就我所知,在我的例子中,这样做是错误的。我添加了如何在angular中实现它的示例。我从未使用过angular,但谷歌帮了我的忙。
@Component({
    selector: 'hero-parent',
    template: `
        <h2>{{master}} controls {{heroes.length}} heroes</h2>
        <hero-child *ngFor="let hero of heroes"
            [hero]="hero"
            [master]="master">
        </hero-child>
    `
})
export class HeroParentComponent {
    heroes = HEROES;
    master: string = 'Master';
}