Javascript 使用TypeScript从表单输入中获取值

Javascript 使用TypeScript从表单输入中获取值,javascript,angular,typescript,Javascript,Angular,Typescript,我正在Angular 2中用TypeScript开发一个小应用程序,我遇到了一个问题 假设我将一个变量num声明为一个数字,并使用ngModel将其绑定到表单中的输入框。当我返回值并检查类型时,它实际上现在是一个字符串,不再是一个数字,因此当检查num>=0时,如果由于正常的JavaScript行为,输入包含空字符串,它实际上返回true 这是TypeScript中的一个bug,还是有什么方法可以恢复正确的数据类型?我希望他们在幕后进行适当的胁迫,这样我就不必这么做了 编辑:这不是TypeScr

我正在Angular 2中用TypeScript开发一个小应用程序,我遇到了一个问题

假设我将一个变量
num
声明为一个数字,并使用
ngModel
将其绑定到表单中的输入框。当我返回值并检查类型时,它实际上现在是一个字符串,不再是一个数字,因此当检查
num>=0
时,如果由于正常的JavaScript行为,输入包含空字符串,它实际上返回
true

这是TypeScript中的一个bug,还是有什么方法可以恢复正确的数据类型?我希望他们在幕后进行适当的胁迫,这样我就不必这么做了


编辑

这不是TypeScript中的错误,这是正确的行为

如果您将输入声明为

请参阅type=“number”然后它将是一个数字


顺便说一句,我没有否决你:这不是TypeScript中的错误,这是正确的行为

如果您将输入声明为

请参阅type=“number”然后它将是一个数字


顺便说一句,我没有否决你:p

只是想补充一点解释:

Typescript在浏览器中不存在-它不执行类型强制,不执行类型检查,不执行任何操作。
支付
变量的类型由输入类型和角度决定(如上文所述)

Typescript只在编辑器中和javascript编译阶段通过检查类型来帮助您

如果使用TS创建库并声明:

const myVariable: SomeClassOfMine;
然后我在不同的项目中使用它,我可以做:

myVariable = 1;
不会有任何警告/错误。事实上,浏览器不知道您的SomeClassOfMine类型


请记住,浏览器(或节点)中不存在TS,它仍然是JS。

请尝试添加一点解释:

Typescript在浏览器中不存在-它不执行类型强制,不执行类型检查,不执行任何操作。
支付
变量的类型由输入类型和角度决定(如上文所述)

Typescript只在编辑器中和javascript编译阶段通过检查类型来帮助您

如果使用TS创建库并声明:

const myVariable: SomeClassOfMine;
然后我在不同的项目中使用它,我可以做:

myVariable = 1;
不会有任何警告/错误。事实上,浏览器不知道您的SomeClassOfMine类型


请记住,TS在浏览器(或节点)中不存在,它仍然是JS。

你能创建一个plunkr来演示这个问题吗?@pixelbits DoneI也希望得到一些解释,解释一下为什么我会莫名其妙地被否决。我也同意否决投票是没有理由的。仅仅因为某人对某事有误解,并不意味着他们不应该得到答案。(别担心:))你能创建一个plunkr来演示这个问题吗?@pixelbits DoneI也希望能得到一些解释,解释为什么我会莫名其妙地被否决。我也同意否决投票是没有道理的。仅仅因为某人对某事有误解,并不意味着他们不应该得到答案。(不必担心:))也许现在对我来说编程已经太晚了,当时对我来说没有意义,但是谢谢你的解释,也许现在对我来说编程已经太晚了,当时对我来说没有意义,但是谢谢你的解释