击倒可观察<数字>在绑定到typescript中的输入时返回字符串
KnockoutObservable<number> returns string when bound to an input in typescript
我使用Knockout版本3.2.0及其来自nuget:的明确类型定义
我有一个属性绑定到具有值绑定的输入(类型号),属性定义为:
export class SomeClass {
myProp: KnockoutObservable<number>;
constructor() {
myProp = ko.observable(0);
}
}
现在,摆弄控制台,当初始化类时,调用该属性时会返回0。但是,在我更改输入中的值后,属性开始返回字符串,例如,如果我将其更改为2,则返回的值为"2"。当把两个这样的属性加在一起时,这显然是一个问题。
var x = myinstance.myProp() + myinstance.myProp();
结果不是4,正如您所期望的那样,结果实际上是"22",即串联。
有什么合理的解决方案吗?这是淘汰赛中的错误还是记录在案的行为?
您已经将字符串值绑定到数字类型,并希望在绑定过程中自动进行类型转换。这是行不通的,因为KnockoutJS首先是一个Javascript框架,它对Typescript的类型系统一无所知。
您可以将该属性设置为可写的可计算可观测属性,也可以引入只读的可计算观测属性,该属性只需通过parseInt()运行"myProp"的当前值。
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- 将JSON转换为typescript中的字符串数组
- 用Angularjs+Typescript将GZip Json字符串解压为普通Json字符串
- 如何在我的模板(Angular2/TypeScript)中将HTML字符串转换为HTML
- Typescript字符串与String.toLowerCase的比较奇数
- 以编程方式将TypeScript字符串编译为Javascript字符串
- 击倒可观察<数字>在绑定到typescript中的输入时返回字符串
- typescript从字符串调用kendo ui方法
- Typescript -字符串文字类型到字符串类型
- Typescript + angular2从字符串值传递类
- Typescript:检查字符串是否有number
- Typescript:将字符串作为HTML打印到终端
- 如何在TypeScript中发现两个字符串是否相同
- 在TypeScript中将数字转换为字符串
- Typescript接口中的日期在检查时实际上是字符串
- Typescript中的字符串或数字值
- TypeScript中的For-in循环总是像对待字符串一样对待变量
- 字符串上的TypeScript编译器错误
- 为什么javascript/typescript隐式地将日期对象转换为字符串
- 使用字符串编写TypeScript简单装饰器