我有以下组件:
<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中的类型,但是当typescript正在编译时我会遇到错误.
我不想在gettes和setter中使用type any.
任何优雅的解决方
解决方法
使用方括号[]绑定时,该值直接绑定在对象上.
使用属性绑定,引号之间的值将作为字符串处理.
Maybe have a look at the docs.
working 07001 for example usage