Typescript angular2组件如何声明所需的入站属性?

Typescript angular2组件如何声明所需的入站属性?,typescript,angular,Typescript,Angular,作为主题,我正在使用Angular2构建一个公共网格组件,并且需要网格的id属性 export class GridComponent { @Input() public id: string; } 您知道如何将id属性声明为必需属性吗?没有内置的方法,但您可以像这样强制执行它: export class GridComponent { @Input() public id: string; ngOnInit() { if(!this.id) { thr

作为主题,我正在使用Angular2构建一个公共网格组件,并且需要网格的id属性

export class GridComponent {

  @Input() public id: string;

}

您知道如何将id属性声明为必需属性吗?

没有内置的方法,但您可以像这样强制执行它:

export class GridComponent {

  @Input() public id: string;

  ngOnInit() {
    if(!this.id) {
      throw 'The "id" attribute is required!';
    }
  }
}

没有内置的方法,但您可以像以下那样强制执行:

export class GridComponent {

  @Input() public id: string;

  ngOnInit() {
    if(!this.id) {
      throw 'The "id" attribute is required!';
    }
  }
}

您应该在
component.html

请看一看


您应该在
component.html

请看一看



这就是我想要的,直接而简单。我想我们可以通过typescript的特性来定义这个规则。typescript没有办法。我不太了解TS,因为我正在使用Dart,但Dart可以强制设置字段(通过添加
final
)。这需要在构造函数中初始化值。如果使用了某种绑定,如
[id]=“generateId”
,则此绑定在构造函数中尚不可用,但只有在第一次调用
ngOnChanges()
时才可用,因此语言功能无法处理此绑定。OK。非常感谢。这正是我想要的,直接而简单。我想我们可以通过typescript的特性来定义这个规则。typescript没有办法。我不太了解TS,因为我正在使用Dart,但Dart可以强制设置字段(通过添加
final
)。这需要在构造函数中初始化值。如果使用了某种绑定,如
[id]=“generateId”
,则此绑定在构造函数中尚不可用,但只有在第一次调用
ngOnChanges()
时才可用,因此语言功能无法处理此绑定。OK。非常感谢,谢谢你,提瓦里。我想要的不是业务级别的东西,而是小部件级别的东西。Typescript还有一个用于模型验证的库。谢谢Tiwari。我想要的不是业务级别的东西,而是小部件级别的东西。Typescript还有一个用于模型验证的库。