Angular 2 @Input数量问题

时间:2016-10-03 08:24:06

标签: angular typescript types

我有以下组件:

<component value="3"></component>

组件代码是:

  private _value:number;

  get value(): number {
    return this._value;
  }

  @Input()
  set value(value: number) {
    console.log(value);
    console.log(typeof value);
    this._value = value;
  }

日志是:

3
string

但是,如果我绑定属性,如:

<component [value]="variable1"></component>

在这种情况下,如果variable1是类型编号,我会得到一个数字。

3
number

我知道打字稿没有魔力,但这是正确的行为吗? Angular Input装饰器应该进行转换吗?

我正在检查setter中的类型,但是在打字稿时我会遇到错误。

我不想在gettes和setter中使用任何类型。

任何优雅的解决方案?

1 个答案:

答案 0 :(得分:5)

当用括号[]绑定时,该值直接绑定在对象上。

使用属性绑定时,引号之间的值将作为字符串处理。

Maybe have a look at the docs.

  

工作Plunker例如用法