我正在努力让自己熟悉角度2+的打字稿,而且我遇到了一些对我来说很奇怪的东西。从我的模板通过方法传递给我的组件的参数与它的输入不匹配但不会引发错误。
checkValue(value:number) {
console.log(typeof value) // returns type 'string'
}
参数的来源来自我的模板中的按钮点击事件:
<input type="number" #numberInput>
<button (click)="checkValue(numberInput.value)">+</button>
我认为输入标记没有对值强制执行并将其作为字符串发送,但我很好奇为什么编译器没有捕获它。
答案 0 :(得分:2)
这里的关键部分是:
在我的模板中
typescript编译器类型检查您的ts
文件并生成JS。模板由角度处理,而角度不检查类型。由于在运行时ts变为javascript,因此可以使用任何参数类型从模板调用该函数。