angular - 即使参数不匹配,点击功能也会触发事件
问题描述
我有一个按钮,它触发了一个名为 check 的函数(resp 是我的 html 模板中的一个引用)
<button
(click)="check(resp)">
clickMe
</button>
在我的 ts 代码中
check() {
console.log("check is clicked")
}
我可以看到我的控制台输出
但我很困惑为什么 check(Function) 被成功调用,我不期待 ts 代码中有任何参数,但我的模板代码传递了一个 arg ,我期待一个签名不匹配错误,为什么它能够成功调用?
解决方案
Typescript 在设计时强制执行类型检查,而不是运行时。HTML 模板不是 .ts 文件的一部分,因此不会被编译。因为它没有被编译,Typescript 编译器看不到它。当应用程序运行时,它的标准 JS,不强制类型检查。
推荐阅读
- c# - 颜色不包含定义
- python - 访问嵌套字典失败
- javascript - Java Script:如何计算智能手机和飞机之间的角度?
- javascript - 抓取 RowDataPacket 的某些部分
- javascript - 使用 javascript 为带有值的 html 表行排序
- android - 如何将音频文件上传到 Firebase 存储?
- json - 使用 Ignite Datatables Codeigniter 在 Datatables 中搜索特定数据时出现 500 内部错误
- php - Codeigniter 多用户登录
- reactjs - 如何用玩笑模拟 saga 中的 API 函数?
- python - 我的python编程的语法有一些语法错误