首页 > 解决方案 > 即使参数不匹配,点击功能也会触发事件

问题描述

我有一个按钮,它触发了一个名为 check 的函数(resp 是我的 html 模板中的一个引用)

<button
(click)="check(resp)">
clickMe
</button>

在我的 ts 代码中

check() {
console.log("check is clicked")
}

我可以看到我的控制台输出

但我很困惑为什么 check(Function) 被成功调用,我不期待 ts 代码中有任何参数,但我的模板代码传递了一个 arg ,我期待一个签名不匹配错误,为什么它能够成功调用?

标签: angulartypescriptangular6

解决方案


Typescript 在设计时强制执行类型检查,而不是运行时。HTML 模板不是 .ts 文件的一部分,因此不会被编译。因为它没有被编译,Typescript 编译器看不到它。当应用程序运行时,它的标准 JS,不强制类型检查。


推荐阅读