【发布时间】:2015-11-02 12:49:36
【问题描述】:
这应该是非常基本的,但我无法通过它。
我有这样的课:
class MyObject {
value: number;
unit: string;
constructor(value: number, unit: string){
this.value = value;
this.unit = unit;
}
}
然后在 HTML 中,
<input id="myValue" type="number"></input>
<input id="myUnit" type="text"></input>
我想使用 myValue 和 myUnit 创建一个“MyObject”类的对象。我该怎么做?
类似:
var value = document.getElementById("myValue");
var unit = document.getElementById("myUnit");
myObject: MyObject = new MyObject(value, unit);
无法通过上述方式做到这一点。这个有什么办法吗?
【问题讨论】:
-
尝试将
var value = document.getElementById("myValue");更改为var value = parseFloat(document.getElementById("myValue"));。 text-input 是一个字符串,但您需要一个类似于声明中的数字。 -
哦,将
myObject: MyObject = new MyObject(value, unit);更改为myObject = new MyObject(value, unit);。另一种创建对象的方式:var myObject:MyObject = new MyObject(value, unit);(注意“var”关键字) -
我也在做 document.getElementById(".. ").nodeValue 以获得没有编译错误.. 它需要 nodeValue..for text 和 number.. parseFloat 对数字很好..运行后会更新...
-
啊,我的错。您忘记了前两行中的
.value。变量value和unit持有HTMLElement (DOMElement) 类型的对象。您必须访问.value属性才能从中获取字符串。对不起。第一次没看到但是....这是javascript基础知识,与打字稿无关。 -
正确..我明白了。谢谢!
标签: typescript