Angular 如何为该属性指定类型
使用时,让编译后的代码变为var isTest=this.isTest | | false,正如您所期望的那样,但分配给此时,它变为:Angular 如何为该属性指定类型,angular,typescript,Angular,Typescript,使用时,让编译后的代码变为var isTest=this.isTest | | false,正如您所期望的那样,但分配给此时,它变为: ngOnInit() { let isTest: boolean = this.isTest || false; this.isTest: boolean = 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';
}